Композитный отчёт

отредактировано June 2007 Раздел: FastReport 4.0
Есть отчёт маленький по размеру(штрих код для товара)

его загружаю, растягиваю до А4, делаю в нём 4 колонки, (всё это программно)

потом в цикле делаю PrepareReport,
первая колонка проходит нормально, а вот на вторую колонку, след. отчёты(маленькие) не попадают, точнее они вроде и попадают,но не сверху листа, а в самом низу, и уходят видять за пределы страницы вниз..

вот такой недочёт есть...

Комментарии

  • отредактировано June 2007
    АП!
    Всё это делал, по примеру из Мануала...


    эмм... помогите, или попробуйте сами, реально не работает..
    или хоть ответьсе что нибудь.
  • gpigpi
    отредактировано 03:54
    Выложите шаблон отчёта
  • отредактировано 03:54
    файл
  • gpigpi
    отредактировано 03:54
    Колонки задаются для страницы? Ширина колонок устанавливается?
    Хотелось бы увидеть код, выполняющий модификацию отчёта (если на Delphi)
  • отредактировано 03:54
    Report3 := TfrxReport.Create(Application);
    Report3.PreviewOptions.Modal := false;
    Report3.PreviewOptions.MDIChild := true;
    Report3.PreviewOptions.Maximized := false;
    Report3.PreviewOptions.Buttons := Report3.PreviewOptions.Buttons - [pbLoad,pbSave];
    Report3.Script.Parent := fsGlobalUnit;
    Report3.Clear;
    Report3.LoadFromFile(BZB_TheWorkingPath+'ListEtiket\'+
    RName);
    A4 := Report3.ReportOptions.Description.Text;

    //ЗДЕСЬ РАСЧИТЫВАЮТСЯ ПОЛЯ
    TfrxReportPage(Report3.Pages[1]).TopMargin := round(StrToFloat(Token(A4,';',1,1))*10);
    TfrxReportPage(Report3.Pages[1]).BottomMargin := round(StrToFloat(Token(A4,';',1,1))*10);
    TfrxReportPage(Report3.Pages[1]).LeftMargin := round(StrToFloat(Token(A4,';',2,1))*10);
    TfrxReportPage(Report3.Pages[1]).RightMargin := round(StrToFloat(Token(A4,';',2,1))*10);
    TfrxReportPage(Report3.Pages[1]).PaperHeight := 297;
    TfrxReportPage(Report3.Pages[1]).PaperWidth := 210;
    TfrxReportPage(Report3.Pages[1]).PrintOnPreviousPage := true;
    TfrxReportPage(Report3.Pages[1]).Columns := Round((210 -
    2 * TfrxReportPage(Report3.Pages[1]).LeftMargin) /
    (round(StrToFloat(Token(A4,';',3,1))*10))); //ЗДЕСЬ КОЛИЧЕСТВО КОЛОНОК РАСЧИТЫВЕТСЯ


    // ЦИКЛ ПО СОЗДАНИЮ КОМПОЗИТНОГО ОТЧЁТА
    for z := 0 to List.Count - 1 do
    begin
    b := TImgRec(List.Objects[z]);
    for i := 1 to b.cnt do begin
    b.Table.GotoBookmark(b.bm);
    Report3.PrepareReport(false);

    end;
    end;
    Report3.ShowPreparedReport;
  • gpigpi
    отредактировано 03:54
    А где задаётся ширина колонок? В шаблоне она равна 21 см
  • отредактировано June 2007
    Ширина определяется количеством колонок автоматически
  • pigpig г. Волноваха Донецкой области Украина
    отредактировано 03:54
    Похоже на баг. Сделал тестовый проект и отослал разработчикам, создав тикет
  • отредактировано 03:54
    Вышла новая версия(4.3), а ошибка осталась!
    поясните...
  • отредактировано 03:54
    igrik написал: »
    Вышла новая версия(4.3), а ошибка осталась!
    поясните...
    Хм!!! Та же проблема
    Вышла новая версия(4.5.51), а ошибка осталась!
    :)
  • отредактировано 03:54
    AlexLi написал: »
    Хм!!! Та же проблема
    Вышла новая версия(4.5.51), а ошибка осталась!
    :)

    Они заняты другими делами...
    Посмотри на форум он еле жив.
    И похоже разработчики его не читают.
  • отредактировано 03:54
    AlexLi написал: »
    Хм!!! Та же проблема
    Вышла новая версия(4.5.51), а ошибка осталась!
    :)
    Вышла новая версия(4.6), а ошибка осталась!
    :) .Очень жаль.

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

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