экспорт из FRF в FR3

отредактировано 07:24 Раздел: FastReport 3.0
кто может поделится инфо как точно экспортировать из FR2 в FR3
проблемма - координаты у обьектов ползут

Комментарии

  • отредактировано 07:24
    Координаты немного ползут, т.к. в 2.х лист отчета был "заужен". Конвертер это учитывает.
  • отредактировано 07:24
    А возможно ли это исправить
    обьекты даже из бэндов вываливаются
  • отредактировано 07:24
    Free bands placement в настройках включено?
  • отредактировано 07:24
    Проблема конвертации FR 2.44 -> 3

    - Этот тип отсутструет (переименован) в FR3 TfrxDBLookupControl - TfrxDBLookupComboBox
    - Параметры IBX SQL-запросов - не переносятся. Вместо списка параметров - виден только один.
    - Столбцы кросс-отчета не переносятся.
    - Стоит автоматически отбросить все вхождения "DialogForm."
    - ...


    Для frxMemo.Memo.Text имеет смысл выполнить следующие замены:
    s:=frxMemo.Memo.Text;
    s:=StringReplace(s,'[DialogForm.','[<',[rfReplaceAll,rfIgnoreCase]);
    s:=StringReplace(s,'"]','">]',[rfReplaceAll,rfIgnoreCase]);
    s:=StringReplace(s,'if(','IIF(',[rfReplaceAll,rfIgnoreCase]);
    s:=ClearQuot(frxMemo.Memo.Text);
    frxMemo.Memo.Text:=s;
    
      function ClearQuot(s:string):string;
      var i,l:integer;
        qu:boolean;
      Begin
        result:=s;
        l:=0;
        qu:=false;
        for i:=length(result) downto 1 do Begin
          if result[i]=#39 then qu:=NOT qu;
          if qu then continue;
          if result[i]=']' then Begin
            inc(l);
            if l>1 then result[i]:=' ';
          End;
          if result[i]='[' then Begin
            dec(l);
            if l>0 then result[i]:=' ';
          End;
        End;
      End;
    

    Для параметров SQL-запроса:
    
                    if pos('[',paramvalue)=0 then
                      frxIBQuery.Params[k].Value:=paramvalue
                    else Begin
                      paramvalue:=StringReplace(paramvalue,'[DialogForm.','[<',[rfReplaceAll,rfIgnoreCase]);
                      paramvalue:=StringReplace(paramvalue,'"]','">]',[rfReplaceAll,rfIgnoreCase]);
                      paramvalue:=StringReplace(paramvalue,'if(','IIF(',[rfReplaceAll,rfIgnoreCase]);
                      paramvalue:=StringReplace(paramvalue,'[','',[rfReplaceAll,rfIgnoreCase]);
                      paramvalue:=StringReplace(paramvalue,']','',[rfReplaceAll,rfIgnoreCase]);
                      if pos('.DATE',UpperCase(paramvalue))>0 then
                        paramvalue:='DateToStr('+paramvalue+')';
                      frxIBQuery.Params[k].Expression:=paramvalue;
                      frxIBQuery.Params[k].DataType:=ftString;
    
    P.S. Ойчень хочется поковырять исходники конвертера...

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

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