Как отформатировать строку по время постоения?

alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
отредактировано February 2005 Раздел: FastReport 3.0
Проблема в следующем: есть строка (берется из переменной) формирующаяся из базы данных (например, фио: Иванов И.И., паспорт серии 1111 № 111111, выдан ОВД города, дата выдачи 01.01.2005 г.). Как отформатировать строку (использую объект "RichText") перед тем, как передать её (строку) отчету? Т.е. что бы получилось следующее: фио: Иванов И.И., паспорт серии 1111111111, выдан ОВД города, дата выдачи 01.01.2005 г. Какие идентификаторы существуют в FR 3 для реализации данной задачи, если таковые имеются?

Комментарии

  • отредактировано 17:35
    Как быть с Reach не знаю. Но если использовать обычные Memo, то свойство AllowHTMLTag ставишь в True и в самом тексте мемки можно использовать символы
    Foo для печати жирным
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано February 2005
    Shao написал:
    Как быть с Reach не знаю. Но если использовать обычные Memo, то свойство AllowHTMLTag ставишь в True и в самом тексте мемки можно использовать символы
    Foo для печати жирным
    Идея конечно интересная, но мне бы хотелось работать с RichText, т.к. там есть выравнивание по краям! Данная проблема возникла в договоре и не очень правильно будет смотреться, если использовать Memo. ;) Уважаемые расработчики FR, других вариантов нет?
  • отредактировано 17:35
    Объект Text имеет все необходимые пармнетры для выравнивания текста. Достаточно положить его на форму и посмотреть.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    Shao написал:
    Объект Text имеет все необходимые пармнетры для выравнивания текста. Достаточно положить его на форму и посмотреть.
    ;) Если б дело было только в выравнивании! В общем оформление объекта "Текст" не подразумевает использование его для создания шаблонов типа "Договор"! ;) Вы сами Shao попытайтесь создать с помощью данного объекта какой-нибудь договор или любой текст со сложным форматированием и посмотрите сколько гемороя Вам это принесет!
  • отредактировано 17:35
    Созданы и договора, и накладные, и счета-фактуры. Все работает. Да, не очень быстро создается. Но если Вы хотите все удобно и быстро чтобы работало, то не получается так.
    Кстати, если найдете способ, как выделить в Рич, то поделитесь пжалуйста
  • отредактировано 17:35
    А не проще ли в тектовку вставить переменные, на которых осуществить необходимое форматирование. А потом, при построении, вместо переменных появятся нужные значения, но уже отформатированные нужным образом. По-моему так.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    leonon написал:
    А не проще ли в тектовку вставить переменные, на которых осуществить необходимое форматирование. А потом, при построении, вместо переменных появятся нужные значения, но уже отформатированные нужным образом. По-моему так.
    А по-побробнее можно на этом остановиться? Например, как это можно реализовать? Т.к. переменные у меня используются либо напрямую из базы, либо через OnGetValue.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано February 2005
    <span style='color:red'>Есть предложение к разработчикам FastReport!</span> Добавить такое замечательное свойство объекта "Текст", как AllowHTMLTag и в объект "RichText". С данным свойством многих проблем в построении будет существенно легче избежать.
  • отредактировано 17:35
    Если по подробнее....

    У тебя есть текстовка, которую ты вставляешь в Rich. В нее же в нужные места ты вставляешь свои переменные или поля из базы. Ну например [Dialog.Date1.Date] и.т.д. Затем форматируешь ее любым способом (именно весь блок [Dialog.Date1.Date]). Текст вставленный вместо [Dialog.Date1.Date] то же будет отформатирован.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано February 2005
    leonon написал:
    Затем форматируешь ее любым способом (именно весь блок [Dialog.Date1.Date]).
    Что значит любым способом, например каким? Что-то я не могу понять о чем ты здесь говоришь? Какие функции для этого используются?
    <span style='color:red'>P.s. как вставить данное выражение мне вполне ясно, не ясно как отформатировать!</span>
  • отредактировано 17:35
    Мышкой выделил блок [...] и нажал кнопочку "Жирный" или "Наклонный", цвет и т.д.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    leonon написал:
    Мышкой выделил блок [...] и нажал кнопочку "Жирный" или "Наклонный", цвет и т.д.
    <span style='color:red'>А если таких текстов (разных) я печатаю в час более сотни, то тогда я либо повешусь с каждым текстов столько возиться, либо меня уволят! </span>Я спрашивал про автоматизацию данной проблемы! Что бы программа успользующая данных отчет делала все сама!
  • отредактировано 17:35
    Еще раз объясняюю....

    Открой шаблон договора, зайди в редактирование текста в Rich. Пусть он имеет таку форму:

    Договор № [Number] ...

    Далее выделяешь блок [Number] мышкой и форматируешь текст, например делаешь жирным. В результате имеем

    Договор № [Number] ...

    Сохраняешь шаблон. Теперь когда ты его вызовешь на исполнение, текст, подставленный вместо [Number] будет жирным. Вот таким.

    Договор № 666 ...

    Идею понял?

  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    Пожалуйста причитай начало топика! У меня проблема в том, что имеется переменная с неизвестным (перед построением отчета) количеством символов! Так вот мне нужно отформатировать данную переменную указанным способом! Т.е. что бы текст в переменной выглядел указанным образом!
  • отредактировано 17:35
    А попробовать твою переменную делать в формате rtf?
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    Stranger написал:
    А попробовать твою переменную делать в формате rtf?
    Это как?
  • отредактировано 17:35
    В frxReport1BeforePrint:
     
    begin
      if Sender is TfrxRichView then
      begin
        (Sender as TfrxRichView).RichEdit.SelAttributes.Style:= [];    
        (Sender as TfrxRichView).RichEdit.Lines.Add('фио:');    
        (Sender as TfrxRichView).RichEdit.SelAttributes.Style:= [fsBold];    
        (Sender as TfrxRichView).RichEdit.Lines.Add('Иванов');    
      end
    end;
    
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    Спасибо работает! Еще вопрос: можно ли ожидать появления в будущих версиях FR понимания HTML тегов в объекте "RichText"?
  • отредактировано 17:35
    Этот объект полностью реализуется виндой. В процесс отображения вмешаться не можем.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 17:35
    AlexTZ написал:
    Этот объект полностью реализуется виндой. В процесс отображения вмешаться не можем.
    ОК! Все ясно!

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

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