выравнивание раздела Details по нижнему краю листа

Delphi 10. Подскажите пожалуйста как выровнять табличку детализации по нижнему краю листа. Затем желательно скорректировать

границы выводимого изображения. В детализации может быть от одной до 5-8 строк. Изображения подгружаются в разделе Code на событие TfrxPictureView.OnBeforePrint.

Комментарии

  • День добрый. Переводим отчеты на Fast Report. Разумеется в процессе появляется куча небольших вопросов о реализации желаемого поведения. Оперативность ответов на задаваемые вопросы на форуме пока явно не впечатляют: как на русском, так и на англоязычном.

  • Странно, что за более, чем пол года разработчики не ответили на вполне типовую задачу.

    Уточню задачу: есть два набора данных Мастер и Детализация. Требуется сформировать отчет, где на каждую запись основного набора данных выделяется целый лист, на который выводится несколько текстовых полей, а также несколько изображений. Второй набор (шапка + 1-8 строк данных) должен располагаться внизу листа в виде таблицы, выровненной по нижнему краю. В случае нескольких строк данных в детализации, возможно будет необходимо скорректировать положение картинок в панели TfrxMasterData.

    Изображение загружается процедурами в скрипте Code

    procedure picture_oneOnBeforePrint(Sender: TfrxComponent);
    begin
     TfrxPictureView(Sender).Picture.LoadFromFile(<dsMaster."one">);
    end;
    

    Как правильно средствами FastReoport управлять положением панели детализации и расположением картинок? Иначе то пара строк детализации вылезает на следующую страницу, то изображения вылетают из Мастер-панели.

  • Пишите в тикеты. Совсем не типовая.

    var l: string;

    procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

    begin

     l := IntToStr(<Line>);

     if not Engine.FinalPass then

       begin

         DetailData1.RowCount := Trunc(Random * 20);

         Set('RowCount' + l, DetailData1.RowCount);

         Set('Height' + l, 0);

       end

     else

       DetailData1.RowCount := Get('RowCount' + l);

    end;


    procedure DetailData1OnAfterCalcHeight(Sender: TfrxComponent);

    begin

     if not Engine.FinalPass then

       Set('Height' + l, Get('Height' + l) + DetailData1.Height);

    end;


    procedure MasterData1OnAfterPrint(Sender: TfrxComponent);

    begin

     if Engine.FinalPass then

       Engine.CurY := Engine.CurY + Engine.FreeSpace - Get('Height' + l) - 0.0001;

    end;

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

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