Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
Добрый день!

Вопрос про FastReport (4).
Есть датасет, некоторым полям которого назначено свойство OnGetText.
В отчете используются поля датасета через TfrxDBDataSet. Но отображается 'голое' значение, как будто FastReport не использует свойства Text (DisplayText) для отображения значения поля.
В тоже время у TfrxDBDataSet есть свойство DisplayText[Index].
Как его можно прикрутить в отчете, тогда по идее должен быть вызван OnGetText?
13 сен 18, 17:00    [21673930]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge,

а что ты хочешь-то, в "глобальном" смысле?
14 сен 18, 08:40    [21674340]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge,

а что ты хочешь-то, в "глобальном" смысле?


В глобальном смысле не хочу дублировать код. Сейчас я использую TfrxReport.OnGetValue для возврата правильных значений для некоторых полей. При этом, у этих полей есть TField.OnGetText (для отображения в DBGrid).

И еще вопросы:
1. почему не работает условие HighLight: (<Line>div 2)=0 (пробовал [(<Line>div 2)=0]). Я знаю как можно сделать это другим способом, я не понимаю, почему это не работает, пишет: 'Cound't convert variant type (null) into boolean'. <Line>- уже null?

2. почему не работает агрегатная функции count(), Sum() - см. скрин к посту.

Все это решается другими способами, но хочется упростить себе жизнь.

К сообщению приложен файл. Размер - 108Kb
14 сен 18, 09:48    [21674386]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
Belotsky Serge,

а что ты хочешь-то, в "глобальном" смысле?


В глобальном смысле не хочу дублировать код. Сейчас я использую TfrxReport.OnGetValue для возврата правильных значений для некоторых полей. При этом, у этих полей есть TField.OnGetText (для отображения в DBGrid).


Не хочешь дублировать код - не дублируй. В чем проблема, где вопрос?
14 сен 18, 10:33    [21674437]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Василий 2
Member

Откуда:
Сообщений: 194
Была такая фигня, не помню, почему не стал допиливать OnGetText, добавил TfrxCustomDBDataSet.OnNewGetValue, перекрытие TfrxCustomDBDataset.GetValue, чтобы вызывал этот коллбэк, и вызов inherited GetValue в TfrxDBDataset.GetValue
14 сен 18, 10:37    [21674444]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
И еще вопросы:
1. почему не работает условие HighLight: (<Line>div 2)=0 (пробовал [(<Line>div 2)=0]). Я знаю как можно сделать это другим способом, я не понимаю, почему это не работает, пишет: 'Cound't convert variant type (null) into boolean'. <Line>- уже null?

Потому, что ты не знаешь, как работает div.

К сообщению приложен файл. Размер - 22Kb
14 сен 18, 10:40    [21674446]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
пропущено...


В глобальном смысле не хочу дублировать код. Сейчас я использую TfrxReport.OnGetValue для возврата правильных значений для некоторых полей. При этом, у этих полей есть TField.OnGetText (для отображения в DBGrid).


Не хочешь дублировать код - не дублируй. В чем проблема, где вопрос?


Давай без флейма, я тебя ни к чему не обязываю.
14 сен 18, 10:42    [21674453]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
И еще вопросы:
1. почему не работает условие HighLight: (<Line>div 2)=0 (пробовал [(<Line>div 2)=0]). Я знаю как можно сделать это другим способом, я не понимаю, почему это не работает, пишет: 'Cound't convert variant type (null) into boolean'. <Line>- уже null?

Потому, что ты не знаешь, как работает div.


Да тут я ошибся, надо 'mod'. Все равно не работает.
14 сен 18, 10:43    [21674455]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge

2. почему не работает агрегатная функции count(), Sum() - см. скрин к посту.

Все это решается другими способами, но хочется упростить себе жизнь.

Потому, что ты не понял, что написано в документации к FR.

К сообщению приложен файл. Размер - 17Kb
14 сен 18, 10:44    [21674456]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
пропущено...

Потому, что ты не знаешь, как работает div.


Да тут я ошибся, надо 'mod'. Все равно не работает.

Работает.

К сообщению приложен файл. Размер - 34Kb
14 сен 18, 10:47    [21674460]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
Давай без флейма...

Это - не флейм:
Василий 2
Была такая фигня, не помню, почему не стал допиливать OnGetText, добавил TfrxCustomDBDataSet.OnNewGetValue, перекрытие TfrxCustomDBDataset.GetValue, чтобы вызывал этот коллбэк, и вызов inherited GetValue в TfrxDBDataset.GetValue

- ?
14 сен 18, 10:48    [21674463]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
пропущено...


Да тут я ошибся, надо 'mod'. Все равно не работает.

Работает.


У меня не работает.

И документацию я читал:
https://www.fast-report.com/documentation/UserMan-ru/index.html?24.htm

по поводу Count, в документации не написано, что функцию Count() можно вызывать без параметров.
https://www.fast-report.com/documentation/UserMan-ru/index.html?24.htm
И даже в этом случае - не работает.

К сообщению приложен файл. Размер - 134Kb
14 сен 18, 11:06    [21674481]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Василий 2
Member

Откуда:
Сообщений: 194
чччД__
Belotsky Serge
Давай без флейма...

Это - не флейм:
Василий 2
Была такая фигня, не помню, почему не стал допиливать OnGetText, добавил TfrxCustomDBDataSet.OnNewGetValue, перекрытие TfrxCustomDBDataset.GetValue, чтобы вызывал этот коллбэк, и вызов inherited GetValue в TfrxDBDataset.GetValue

- ?

Загугли определение флейма и не пори чушь.
14 сен 18, 11:22    [21674502]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
Василий 2
чччД__
пропущено...

Это - не флейм:
пропущено...

- ?

Загугли определение флейма и не пори чушь.


Развод пустых постов - тоже флейм. Вот как сейчас - не по делу.
14 сен 18, 11:25    [21674506]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
пропущено...

Работает.


У меня не работает.
...

Потому что ты почему-то не видишь, что написано в сообщении об ошибке. FR говорит тебе, что ты херь в мемке написал.

К сообщению приложен файл. Размер - 109Kb
14 сен 18, 11:27    [21674514]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge,

FastReport 4.14

К сообщению приложен файл. Размер - 37Kb
14 сен 18, 11:28    [21674516]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
пропущено...


У меня не работает.
...

Потому что ты почему-то не видишь, что написано в сообщении об ошибке. FR говорит тебе, что ты херь в мемке написал.


Мимо, это я проверял, ругается не на это. Count() и Sum() просто выводят пустое значение. Ругается именно выражение в Highlight.
Здесь Highlight сделан по другому.

К сообщению приложен файл. Размер - 42Kb
14 сен 18, 11:32    [21674519]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
goldmi45
Belotsky Serge,

FastReport 4.14


У меня 4.15, насколько мне известно - последний релиз для 4. 5-ую версию мы не покупали.
Не работает, возможно дела в датасете. У вас какие-то просты наборы.
14 сен 18, 11:36    [21674526]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge,

похоже на то, что ты что-то недоговариваешь. Делай минимальное приложение, воспроизводящее проблему, и выкладывай сюда.
14 сен 18, 11:38    [21674528]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge,

просто тестовый пример. MasterData привязан не к датасету, а установлено количество записей - 10.
14 сен 18, 11:39    [21674529]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
goldmi45
Belotsky Serge,

просто тестовый пример. MasterData привязан не к датасету, а установлено количество записей - 10.


На простом датасете тоже на работает :(
Count тоже не работает.

К сообщению приложен файл. Размер - 136Kb
14 сен 18, 11:48    [21674537]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
goldmi45
Belotsky Serge,

просто тестовый пример. MasterData привязан не к датасету, а установлено количество записей - 10.


На простом датасете тоже на работает :(
Count тоже не работает.


Давно бы сделал отдельное минимальное приложение да выложил тут.
14 сен 18, 11:50    [21674540]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
Belotsky Serge
goldmi45
Belotsky Serge,

просто тестовый пример. MasterData привязан не к датасету, а установлено количество записей - 10.


На простом датасете тоже на работает :(
Count тоже не работает.


Если убрать условие Highlight, то выводится примерно следующее. Count() - не работает.

К сообщению приложен файл. Размер - 49Kb
14 сен 18, 11:50    [21674542]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge, ошибка не здесь. Если убрать кондишн у HighLight -- ошибка останется?
14 сен 18, 11:50    [21674543]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
пропущено...


На простом датасете тоже на работает :(
Count тоже не работает.


Давно бы сделал отдельное минимальное приложение да выложил тут.


У меня встречное предложение - пришли свой *.fr3 - проверю у себя.
14 сен 18, 11:55    [21674550]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
пропущено...


Давно бы сделал отдельное минимальное приложение да выложил тут.


У меня встречное предложение - пришли свой *.fr3 - проверю у себя.


Условия ставишь? $400.
14 сен 18, 11:57    [21674554]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge,

К сообщению приложен файл (1.fr3 - 1Kb) cкачать
14 сен 18, 11:57    [21674555]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
goldmi45
Belotsky Serge, ошибка не здесь. Если убрать кондишн у HighLight -- ошибка останется?


? см. пост выше

если указать кондишн просто line, то будет примерно следующее:

Но, если указать <line>, то будет ошибка.

К сообщению приложен файл. Размер - 66Kb
14 сен 18, 12:00    [21674557]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge
? см. пост выше

Пост вышел одновременно.
14 сен 18, 12:04    [21674563]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
goldmi45
Belotsky Serge,

Ошибка :(

К сообщению приложен файл. Размер - 38Kb
14 сен 18, 12:08    [21674569]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
goldmi45
Member

Откуда:
Сообщений: 1010
Belotsky Serge,

Ну тогда есть разница между 14 и 15 версиями.
14 сен 18, 12:12    [21674578]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
goldmi45
Belotsky Serge,

Ну тогда есть разница между 14 и 15 версиями.

У меня твой работает, 4.12.
14 сен 18, 12:20    [21674595]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
goldmi45
Belotsky Serge,

Ну тогда есть разница между 14 и 15 версиями.

У меня твой работает, 4.12.


Маловероятно, до переноса на другой комп у меня была 4.13. Насколько я помню, уже тогда обходил этот косяк. А сейчас снова наткнулся на те же грабли. Что-то тут не то. Может дело в XE?
14 сен 18, 12:29    [21674601]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
пропущено...

У меня твой работает, 4.12.


Маловероятно, до переноса на другой комп у меня была 4.13. Насколько я помню, уже тогда обходил этот косяк. А сейчас снова наткнулся на те же грабли. Что-то тут не то. Может дело в XE?

Еще раз: сделай минимальное приложение, повторяющее проблему, и выложи здесь.

Вместе с готовым экзешником. Не забудь добавить TfrxDesigner и кнопку "редактировать".
14 сен 18, 12:34    [21674607]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
Belotsky Serge
Member

Откуда: Гомель
Сообщений: 199
чччД__
Belotsky Serge
пропущено...


Маловероятно, до переноса на другой комп у меня была 4.13. Насколько я помню, уже тогда обходил этот косяк. А сейчас снова наткнулся на те же грабли. Что-то тут не то. Может дело в XE?

Еще раз: сделай минимальное приложение, повторяющее проблему, и выложи здесь.

Вместе с готовым экзешником. Не забудь добавить TfrxDesigner и кнопку "редактировать".


Опа, на абсолютно пустом проекте заработало! :(
Начал копаться, и вот что я обнаружил. Value=unassigned.
Зачем FastReport так делает? Он что, предполагает, что я буду разбирать его выражения? Видимо репорт анализирует unassigned и после этого сам вычисляет. Не знал, не знал...
Проблема решилась комментом строки Value := null;

К сообщению приложен файл. Размер - 67Kb
14 сен 18, 13:03    [21674635]     Ответить | Цитировать Сообщить модератору
 Re: FastReport, TfrxDBDataSet не использует TField.OnGetText?  [new]
чччД__
Guest
Belotsky Serge
чччД__
пропущено...

Еще раз: сделай минимальное приложение, повторяющее проблему, и выложи здесь.

Вместе с готовым экзешником. Не забудь добавить TfrxDesigner и кнопку "редактировать".


Опа, на абсолютно пустом проекте заработало! :(
...

Какая неожиданность!
14 сен 18, 13:07    [21674643]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить