Создал я проект, все нормально работает, добавляю на форму frxDataSet и frxReport, компилирую и при запуске приложение возникает ошибка
Exception EReadError in module xxxxxxxx.exe at XXXXXXXXXX.
Error reading frxDBDataSet.GroupIndex: Property GroupIndex does not exist.
в чем дело ?
Надо открыть все модули проекта, где используются компоненты FR3, ответить Ignore all и сохранить. Это св-во было по ошибке добавлено всем компонентам в 3.01.
Так что этой проперти GroupIndex уже нет?
а как же группировка элементов?
Потому что в FR3 квадратные скобки "заняты" скриптом для передачи параметров типа "массив".
Ну почему при сохранение в 2.53 версии она сохранет квадратные скобки??
это то можно было сделать... чтобы после загрузки в 3
не править эти скобки
Конвертер 2->3 не настолько интеллектуален, чтобы менять одни скобки на другие. Для этого пришлось бы делать полный разбор синтаксиса выражений и синтез их обратно. И все равно, что-нибудь пришлось бы править вручную.
Ну можно сделать кнопку проверить синтаксис?
а то открывается долгий запрос. потом вываливается ошибка в Мемо23.
исправляешь ее снова запускаешь.. и так по циклу пока все не исправишь..
На это уходит очень много времени.
у нас в проекте очень много отчетов.
и когда все переведем не известо.
так вот 2 и3 версия живут вместе.
Ну можно сделать кнопку проверить синтаксис?
а то открывается долгий запрос. потом вываливается ошибка в Мемо23.
исправляешь ее снова запускаешь.. и так по циклу пока все не исправишь..
На это уходит очень много времени.
у нас в проекте очень много отчетов.
и когда все переведем не известо.
так вот 2 и3 версия живут вместе.
Нельзя, т.к. проверка синтаксиса в самих мемо требует выполнения отчета.
Ну можно сделать кнопку проверить синтаксис?
а то открывается долгий запрос. потом вываливается ошибка в Мемо23.
исправляешь ее снова запускаешь.. и так по циклу пока все не исправишь..
На это уходит очень много времени.
у нас в проекте очень много отчетов.
и когда все переведем не известо.
так вот 2 и3 версия живут вместе.
Нельзя, т.к. проверка синтаксиса в самих мемо требует выполнения отчета.
ну тогда чтобы не вываливалось при ошибке а выдавала полный список в каких мемо ей что не нравится
и чтобы этот список можно было скопировать в буфер
1. Извините за резкий тон, но... Какого xxx при чтении значения параметра запроса из frxDBDataset последний переходит к первой записи???
Реальный пример. Имеется приложение с IBQuery (IBX) в котором есть список шапок документов. На этот квайри навешен frxDBDataset c RangeBegin=rbCurrent, RangeEnd=reCurrent и OpenDataSource=False. Т.е. мне нужно из отчета получить выбранный в данный момент документ. В отчете есть свой IBXQuery с параметром DOC_ID. В списке параметров IBXQuery выставляю "брать значение параметра DOC_ID из поля ID таблицы frxDBDataset". В результате могу получить отчет только по ПЕРВОМУ документу, потому как в момент установки параметра IBXQuery frxDBDataset какогото ххх делает First(). Благо если делать установку параметра через скрипт Close/ParamByName=.../Open, то работает.
2. По поводу параметров. Если в диалоге параметров запроса было установлено "брать значение из...", то стереть эту директиву невозможно (если очистить закрыть диалог и открыть его заново, то все будет по старому)
3. Почему при неправильно введенном тексте запроса и открытии диалога алиасов полей FR молчит как рыба и показывает пустой список полей вместо того, чтобы сказать, что я идиот и запрос у меня не правильный? Сейчас приходится делать запросу Active=true/Active=false, а это, на увесистых запросах, может занимать несколько минут, хотя для проверки правильности можно всего-навсего сделать Prepare/Unprepare...
Как только полностью ознакомился с демо FastReport3.03 и сравнил его с demo FastReport2.47, проинсталлировал весь продукт FastReport3.03 на Delphi 6. Успешно. Затем создал пустой новый проект, накидал на форму 2 компонента: frxReport1: TfrxReport, frxDesigner1: TfrxDesigner.
type
TForm1 = class(TForm)
frxReport1: TfrxReport;
frxDesigner1: TfrxDesigner;
private
{ Private declarations }
public
{ Public declarations }
end;
затем залез в Project-->ViewSource и написал:
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := False;
Form1.frxReport1.DesignReport;
Application.Run;
end.
Запускаю файл Project1.exe и кликаю мышью по вкладкам "Variables", "Functions" и выскакивает Exception "Integer Overflow" и не даёт мне вырубиться. приходится через диспетчер задач вырубать.. Что это такое-сырой продукт? :-)
Попробовал на Delphi5, 6 - работает нормально, если вызывать
[fAdiMyFunc('a', 1)]
если, конечно, пытаться вызывать так:
[fAdiMyFunc(Null, 1)]
то работать не будет.
Фигня до сих пор у меня идёт. Могу выслать Вам на почту и сами увидите результат...
Я уже отправил по почте тестовый пример в zip-архиве. А вот в версии 2.47 такой пример сделал - и гладко работает он.
При установке свойств TFrxDesigner.Restrictions в True
при дизайне пользователем шаблона отчета соответвующие кнопки и пункты
(Првью, Удаление/Добавление страницы и т.д) не Disable. хотя и не вызывают
соответвующих действий. Это вводит пользователя в заблуждение и вызывает
ненужные вопросы. Если отключены действия, надо и кнопки отключать или
скрывать.
Фигня до сих пор у меня идёт. Могу выслать Вам на почту и сами увидите результат...
Я уже отправил по почте тестовый пример в zip-архиве. А вот в версии 2.47 такой пример сделал - и гладко работает он.
Надо поставить патчи на Delphi6 - об этом уже писали в какой-то теме (ошибки похожие).
1. Извините за резкий тон, но... Какого xxx при чтении значения параметра запроса из frxDBDataset последний переходит к первой записи???
Реальный пример. Имеется приложение с IBQuery (IBX) в котором есть список шапок документов. На этот квайри навешен frxDBDataset c RangeBegin=rbCurrent, RangeEnd=reCurrent и OpenDataSource=False. Т.е. мне нужно из отчета получить выбранный в данный момент документ. В отчете есть свой IBXQuery с параметром DOC_ID. В списке параметров IBXQuery выставляю "брать значение параметра DOC_ID из поля ID таблицы frxDBDataset". В результате могу получить отчет только по ПЕРВОМУ документу, потому как в момент установки параметра IBXQuery frxDBDataset какогото ххх делает First(). Благо если делать установку параметра через скрипт Close/ParamByName=.../Open, то работает.
2. По поводу параметров. Если в диалоге параметров запроса было установлено "брать значение из...", то стереть эту директиву невозможно (если очистить закрыть диалог и открыть его заново, то все будет по старому)
3. Почему при неправильно введенном тексте запроса и открытии диалога алиасов полей FR молчит как рыба и показывает пустой список полей вместо того, чтобы сказать, что я идиот и запрос у меня не правильный? Сейчас приходится делать запросу Active=true/Active=false, а это, на увесистых запросах, может занимать несколько минут, хотя для проверки правильности можно всего-навсего сделать Prepare/Unprepare...
1. Вроде поправил, но лучше пришлите демку, чтобы я мог проверить.
2. У меня повторить не получилось, опять же, может не то смотрю.
3. Пустой список - это и есть "я идиот и запрос у меня не правильный"
В отчете на любом бенде кроме ReportTitle в Restrictions у мемо ставлю frDontMove и мемо улетает в самый верх ReportTitle, и назад возвращаться не хотит.
Как лечить ?
function TfrxExpressionCache.Calc(const Expression: String;
var ErrorMsg: String): Variant;
Result := v.Value;
end;
v.Value=
Delphi exception EVariantTypeCastError at $F1FF949
Expression=
'IIF(<QNormVipis."P_TYPE">=1,<QNormVipis."DOCMONTH">+'/'+<QNormVipis."DOCYEAR">,DateToStr(<QNormVipis."DOCDATE">))'
и выскакивает ошибка
Были обнаружены следующие ошибки
Could not Convert variant type(String) into (Double)
в каком мемо ничего не сказано.
в 2.53 Эти отчеты все работали.
Что тут криминально?? что все становится колом??
Пример отчета я тебе вчера посылал.
с багами.
2. У меня повторить не получилось, опять же, может не то смотрю.
Пока снимается. Вероятно еще какие-то условия должны выполняться... Еще потестю...
написал:
3. Пустой список - это и есть "я идиот и запрос у меня не правильный"
Ага. Только если были заданы алиасы полей, то список не пустой. Просто квайри не работает...
Еще один баг связанный с поведением Preview из дизайнера в MDI приложении.
Дело в том, что если для предварительного просмотра выставить свойство MDIPreview=true, то все работает нормально, если только этот просмотр вызван не из дизайнера, который всегда показывается в стиле SDI. Если сделать:
а потом в открывшемся дизайнере нажать Preview (само приложение тоже MDI), то предварительный просмотр, едва показавшись, уходит под окно дизайнера. А если еще и frxReport1.PreviewOptions.Modal:=true....
1) Когда я кликаю на него, а в нем имеется Memo, то выделяется Memo
вместе с бендом и в инспекторе я получаю доступ только к общим свойствам
Memo и бенда. До свойств всего верт.бенда можно добратся только по
дереву отчета (так стало в версии 3.03).
2)
На странице имееются 3 бенда(колонки я так печатаю, переменной ширины)
TFrxHeader
|
MasterData1
|
|
|
|
MasterData2(вертикальный).
В таком случае не работает свойство TFrxHeader.ReprintOnNewPage
1) Когда я кликаю на него, а в нем имеется Memo, то выделяется Memo
вместе с бендом и в инспекторе я получаю доступ только к общим свойствам
Memo и бенда. До свойств всего верт.бенда можно добратся только по
дереву отчета (так стало в версии 3.03).
2)
На странице имееются 3 бенда(колонки я так печатаю, переменной ширины)
TFrxHeader
|
MasterData1
|
|
|
|
MasterData2(вертикальный).
В таком случае не работает свойство TFrxHeader.ReprintOnNewPage
1) кликать надо аккуратнее - мемки выделяются только при попытке сдвинуть бэнд.
У memo есть выпадающий список полей для набора текущего банда. После выбора другого поля значение DataField в свойствах меняется, а в мемо остается старое значение. Хотя обратная ситуация отрабатывается нормально (если менять DataField)
Здравствуйте.
Если на форме диалога разместить TEdit и установить у него цвет clBtnFace, то значение цвета не сохраняется в отчет. Если же поставить, например, clBtnText то все нормально. Версия 3.03.
После экспорта из 2.53 у всех объектов ShiftMode=smAlways и StrechMode=smMaxHeight. По этой причине отчет просто умирает при выполнении, т.к. очень много линий и мемо которые накладыаются один на другой. Пример отправлял вчера на tz at fast-report.com.
Комментарии
а как же группировка элементов?
а то открывается долгий запрос. потом вываливается ошибка в Мемо23.
исправляешь ее снова запускаешь.. и так по циклу пока все не исправишь..
На это уходит очень много времени.
у нас в проекте очень много отчетов.
и когда все переведем не известо.
так вот 2 и3 версия живут вместе.
и чтобы этот список можно было скопировать в буфер
Реальный пример. Имеется приложение с IBQuery (IBX) в котором есть список шапок документов. На этот квайри навешен frxDBDataset c RangeBegin=rbCurrent, RangeEnd=reCurrent и OpenDataSource=False. Т.е. мне нужно из отчета получить выбранный в данный момент документ. В отчете есть свой IBXQuery с параметром DOC_ID. В списке параметров IBXQuery выставляю "брать значение параметра DOC_ID из поля ID таблицы frxDBDataset". В результате могу получить отчет только по ПЕРВОМУ документу, потому как в момент установки параметра IBXQuery frxDBDataset какогото ххх делает First(). Благо если делать установку параметра через скрипт Close/ParamByName=.../Open, то работает.
2. По поводу параметров. Если в диалоге параметров запроса было установлено "брать значение из...", то стереть эту директиву невозможно (если очистить закрыть диалог и открыть его заново, то все будет по старому)
3. Почему при неправильно введенном тексте запроса и открытии диалога алиасов полей FR молчит как рыба и показывает пустой список полей вместо того, чтобы сказать, что я идиот и запрос у меня не правильный? Сейчас приходится делать запросу Active=true/Active=false, а это, на увесистых запросах, может занимать несколько минут, хотя для проверки правильности можно всего-навсего сделать Prepare/Unprepare...
затем залез в Project-->ViewSource и написал:
Запускаю файл Project1.exe и кликаю мышью по вкладкам "Variables", "Functions" и выскакивает Exception "Integer Overflow" и не даёт мне вырубиться. приходится через диспетчер задач вырубать.. Что это такое-сырой продукт? :-)
в функции MyFunc
Как мне избавиться от этой ошибки? Со строками работает хорошо, а с числами нет. Само в Дельфи отлично работает, а в FastReport + FS с ошибками
[fAdiMyFunc('a', 1)]
если, конечно, пытаться вызывать так:
[fAdiMyFunc(Null, 1)]
то работать не будет.
Я уже отправил по почте тестовый пример в zip-архиве. А вот в версии 2.47 такой пример сделал - и гладко работает он.
при дизайне пользователем шаблона отчета соответвующие кнопки и пункты
(Првью, Удаление/Добавление страницы и т.д) не Disable. хотя и не вызывают
соответвующих действий. Это вводит пользователя в заблуждение и вызывает
ненужные вопросы. Если отключены действия, надо и кнопки отключать или
скрывать.
2. У меня повторить не получилось, опять же, может не то смотрю.
3. Пустой список - это и есть "я идиот и запрос у меня не правильный"
Как лечить ?
var ErrorMsg: String): Variant;
Result := v.Value;
end;
v.Value=
Delphi exception EVariantTypeCastError at $F1FF949
Expression=
'IIF(<QNormVipis."P_TYPE">=1,<QNormVipis."DOCMONTH">+'/'+<QNormVipis."DOCYEAR">,DateToStr(<QNormVipis."DOCDATE">))'
и выскакивает ошибка
Были обнаружены следующие ошибки
Could not Convert variant type(String) into (Double)
в каком мемо ничего не сказано.
в 2.53 Эти отчеты все работали.
Что тут криминально?? что все становится колом??
Пример отчета я тебе вчера посылал.
с багами.
Ага. Только если были заданы алиасы полей, то список не пустой. Просто квайри не работает...
Еще один баг связанный с поведением Preview из дизайнера в MDI приложении.
Дело в том, что если для предварительного просмотра выставить свойство MDIPreview=true, то все работает нормально, если только этот просмотр вызван не из дизайнера, который всегда показывается в стиле SDI. Если сделать: а потом в открывшемся дизайнере нажать Preview (само приложение тоже MDI), то предварительный просмотр, едва показавшись, уходит под окно дизайнера. А если еще и frxReport1.PreviewOptions.Modal:=true....
Если TFrxRichView пустой и у него выставлена опция
StretchMode=smMaxHeight, то он вытягивается по вертикали до почти
бесконечной длины.
1) Когда я кликаю на него, а в нем имеется Memo, то выделяется Memo
вместе с бендом и в инспекторе я получаю доступ только к общим свойствам
Memo и бенда. До свойств всего верт.бенда можно добратся только по
дереву отчета (так стало в версии 3.03).
2)
На странице имееются 3 бенда(колонки я так печатаю, переменной ширины)
TFrxHeader
|
MasterData1
|
|
|
|
MasterData2(вертикальный).
В таком случае не работает свойство TFrxHeader.ReprintOnNewPage
потом выскакивает диалог с ошибкой
Были обнаружены следующие ошибки
Invalid variant opeation
в каком месте что за ошибка ничего не понятно
что объект не печатаемый он продолжает печататься
пока в инспекторе не посавишь что он не печатаемый
2) поправлено
и флажок видимый.
т.е не совсем ясно если объект не должен печататься
то нужно ставить
не видимый не печаемый.
тогда он действительно не печатается
У memo есть выпадающий список полей для набора текущего банда. После выбора другого поля значение DataField в свойствах меняется, а в мемо остается старое значение. Хотя обратная ситуация отрабатывается нормально (если менять DataField)
Если Printable = false, то в превью будет, на печати - нет.
Если на форме диалога разместить TEdit и установить у него цвет clBtnFace, то значение цвета не сохраняется в отчет. Если же поставить, например, clBtnText то все нормально. Версия 3.03.
С уважением, Юрий В. Забурдаев.
там все это лечится...
нажимаешь найти проперь такую то
тебе полный список где есть такое.
нажимаешь заменить у конкретного или
у всех сразу. и проперть меняется.
я тока с этим отчеты перевожу.
frxRetport
frxDBDataset1
frxDBDataset2
frxDBDataset1 ставлю в датасет к frxRetport
Создаю отчет, привязываею frxDBDataset1 к мастердата
Кидаю туда мемо и связываю его с одним из полей в frxDBDataset1
Запускаю, все нормально
Теперь кидаю еще один мемо на ReportTitle и связываю его с одним из полей в frxDBDataset2
Или создаю переменную которую свзявываю с frxDBDataset2
При формировании репорт ругается что такое поле не найдено, че делать ?
и смотри.
в тройке он ончень чувствителен к скобкам. [] <>
поиграй ими