Tfrxrichview.allowexpressions

TarnishTarnish Киев
отредактировано 21:32 Раздел: FastReport 4.0
Доброго времени суток.
Собственно интересуют подробности механизма TfrxRichView.AllowExpressions. Т.е. я то исходник объекта посмотрел и там все очевидно. Менее очевидно, но все же понятно как frxEngine зовет метод GetData компонента, в котором собственно и происходит преобразование выражений в их значения. Вопрос собственно больше касается того как это было реализовано в 3 версии. Сорца у меня нет, изучить не могу.

Пример.
Есть Rich1: TfrxRichView у которого Rich1.AllowExpressions = True и содержимое лайнсов Rich1.RichEdit.Lines.Text = '[q."Template"]', где q это датасет соответственно в поле Template находиться некий шаблон документа.
При выполнении отчета в Rich1 получаем содержимое поля Template. Если в содержимом поля Template тоже есть выражения (ведь в этом случае они так и останутся, ни на что не заменяться), что делать? Да вроде просто.
Мы не прописываем Rich1.RichEdit.Lines.Text, а назначаем Rich1.DataSet = q и Rich1.DataField = Template
Тогда при выполнении в Rich1 видим содержимое поля Template, а все выражения, которые в нем были заменены значениями. В таком случае, вроде бы нужный с позиции моей логики результат получаем.

Но вот товарищи указывают на то, что первый метод (который Rich1.RichEdit.Lines.Text = '[q."Template"]') в третьем фасте давал такой же результат как во втором случае, т.е. когда Rich1.IsDataField = True.

Спрашивается могло ли такое быть? Товарищи утверждают это настойчиво, т.к. раньше у них была отчетная система на тройке и все отчеты были выполнены по принципу Rich1.RichEdit.Lines.Text = '[q."Template"]', а вот совершили переход на четверку, и по их словам чудо фича отвалилась))

ПС. Еще раз: вопрос задаю потому, что сорца 3 в распоряжении нет, и логику формирования посмотреть не могу. 4 есть, смотрел, и знаю почему первый указанный метод в 4 не работает (т.е. не происходит вторичная замена выражений). Но в 3 ведь работало. Потому, реально ли в 3 работало? И почему в 4 отвалилось? Или в 3 это была случайная фича, а не заложенный функционал?

Комментарии

  • TarnishTarnish Киев
    отредактировано 21:32
    Прошу прощения, если пост не в ту ветку.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.