Бланки почты России

отредактировано 19:04 Раздел: FastReport 3.0
Добрый день.
Есть несколько бланков созданных дизайнером FR встроенным в программу почты России.
Эти бланки необходимо открыть, а самой программы почты России у меня нет. Формат файлов frf, но в FR 2.5 они не открываются. Конверторы из 2.5 в 3, например этот, при попытке конвертации выдают ошибку "Unsupported FRF format", хотя другие frf (не почты России) конвертируются без проблем.
Подскажите чем открыть или как отконвертировать эти файлы.

Комментарии

  • отредактировано 19:04
    Оказывается это FastReport v2.2. Может завалялся у кого?
  • gpigpi
    отредактировано 19:04
    Попробуйте использовать FreeReport
    или
    написал:
    1.14. FR2.4 не открывает файлы frf, сделанные в предыдущих версиях FR.

    (до приобретения FastReportа мы пользовались бесплатной версией FreeReport,
    создали много шаблонов отчетов... а теперь они не открываются, пишет
    "Неверный FRF формат" :) ( Неужели все придется переделывать?)

    У файлов отчета надо заменить первый байт (с 17h на 16h - легче всего это
    сделать в DosNavigator), сделать следующие модификации, прочитать все отчеты
    и сохранить их, потом изменения в коде вернуть назад.

    FR_Class:

    function ReadString(Stream: TStream): String;
    begin
    { if frVersion >= 23 then}
    Result := frReadString(Stream) {else
    Result := frReadString22(Stream);}
    end;

    procedure ReadMemo(Stream: TStream; Memo: TStrings);
    begin
    { if frVersion >= 23 then}
    frReadMemo(Stream, Memo){ else
    frReadMemo22(Stream, Memo);}
    end;


    FR_Utils:

    procedure frReadMemo(Stream: TStream; l: TStrings);
    var
    s: String;
    b: Byte;
    n: Word;
    begin
    l.Clear;
    l.Text := frReadString(Stream); exit;
    Stream.Read(n, 2);
    if n > 0 then
    repeat
    Stream.Read(n, 2);
    SetLength(s, n);
    Stream.Read(s[1], n);
    l.Add(s);
    Stream.Read(b, 1);
    until b = 0
    else
    Stream.Read(b, 1);
    end;

    function frReadString(Stream: TStream): String;
    var
    s: String;
    n: Integer;
    b: Byte;
    begin
    Stream.Read(n, 4);
    SetLength(s, n);
    Stream.Read(s[1], n);
    if (n > 0) and (s[n] = #$0A) then
    SetLength(s, n - 2);
    // Stream.Read(b, 1);
    Result := s;
    end;
  • отредактировано 19:04
    gpi написал: »
    Попробуйте использовать FreeReport
    или
    Не помогло, к сожалению. Но все равно спасибо.

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

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