Динамическое добавление скрипта Scripttext

отредактировано 09:37 Раздел: FastReport 4.0
Не могу найти как добавить динамически скрипт в готовый отчет. Нужно добавить функцию в скрипт отчета, чтобы ее прицепить к событиям бендов.
Но добавить нужно до Begin end. Отчет подгружается через LoadfromFile. В ScriptText лежит текст неизвестного содержания. так же неизвестно есть ли что-то между Begin End отчета. надо добавить функцию типа Child1OnBeforPrint

Комментарии

  • Stalker4Stalker4 123
    отредактировано 09:37
    Fearless написал: »
    Не могу найти как добавить динамически скрипт в готовый отчет. Нужно добавить функцию в скрипт отчета, чтобы ее прицепить к событиям бендов.
    Но добавить нужно до Begin end. Отчет подгружается через LoadfromFile. В ScriptText лежит текст неизвестного содержания. так же неизвестно есть ли что-то между Begin End отчета. надо добавить функцию типа Child1OnBeforPrint
    Могу посоветовать следующее: В те отчеты, куда надо будет добавлять динамический скрипт, в скрипт этих отчетов добавь в нужное место некую метку, например
    /*MyScript*/
    А в коде программы соответственно будет вызывать StringReplace и заменять эту метку на нужный скрипт.
  • отредактировано 09:37
    Stalker4 написал: »
    Могу посоветовать следующее: В те отчеты, куда надо будет добавлять динамический скрипт, в скрипт этих отчетов добавь в нужное место некую метку, например
    /*MyScript*/
    А в коде программы соответственно будет вызывать StringReplace и заменять эту метку на нужный скрипт.
    проблема в том, что количество отчетов под 100 где-то и добавляются регулярно. Ну и как-то чутка костыльно получается. но спасибо за совет, если другого способа нет, так и придется сделать :)
  • Stalker4Stalker4 123
    отредактировано 09:37
    Fearless написал: »
    проблема в том, что количество отчетов под 100 где-то и добавляются регулярно. Ну и как-то чутка костыльно получается. но спасибо за совет, если другого способа нет, так и придется сделать :)
    Ну можно еще попробовать так:
    nPos := 0;
    with frxReport.Script do
      for nCou := 0 to Lines.Count-1
        if (Pos('procedure', LowerCase(Lines[nCou])) > 0) or (Pos('function', LowerCase(Lines[nCou])) > 0) then begin
          nPos := nCou-1;
          Break; 
        end;
    
    И теперь с позиции nPos можно вставить в скрипт свой код.

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

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