Re: Запутался в связях

k245 wrote:

а потом вторую

https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10233&download=0

Это косяк экселя. Через кнопку дизайнер открыть отчет rep. Вот там и увидите, что картинки с бд не тянутся в печатную форму sad

Re: Запутался в связях

https://www.fast-report.com/documentati … index.html

Re: Запутался в связях

Поле с БД с картинкой я передаю, вытаскиваю его на канвас - и получаю при превью набор символов. По логике, наверное, надо располагать  объект "Картинка" ФР на канвас и в путь его вписывать путь хранения картинки своей БД, ну это как по мне.

По ссылке не нашел про картинки ничего

Re: Запутался в связях

Подозреваю, что от вас прячут эту информацию... Но вы не сдавайтесь, попробуйте ещё раз почитать.

Re: Запутался в связях

Не вижу смысла в ироничных ответах.
Половина справочника пуста. В остальных раздела не вижу, что бы было что то про отображение картинки в отчете с базы данных

https://i.ibb.co/tL35dV2/image.jpg

Re: Запутался в связях

Может выражаюсь как то не так.. Еще разок smile
Имеет запись с  картинкой

https://i.ibb.co/gPsWfGN/image.jpg

Открываем ФР, вытягиваем поле с картинкой

https://i.ibb.co/BVbHGSg/image.jpg

Получаем при превью

https://i.ibb.co/Ln4WWVp/image.jpg

32 (edited by sparrow 2024-01-26 09:51:40)

Re: Запутался в связях

Может вы раздел откроете или PDF по фастрепорт скачаете.
Вот например открытый раздел "Построение отчетов" и видим целый раздел "Отчет с картинками".

Post's attachments

Attachment icon fr.jpg 102.3 kb, 9 downloads since 2024-01-26 

Re: Запутался в связях

sparrow wrote:

Может вы раздел откроете или PDF по фастрепорт скачаете.

О! Оно двойным кликом разворачивается smile Никогда такой "справкой" не пользовался, извиняюсь )))

Мм, вроде бы не хитро описано, сделал так же. Создал картинку, натравил поле на поле с картинкой в бд.... пусто

https://i.ibb.co/6FCy8FT/image.jpg

https://i.ibb.co/QYHHVp2/image.jpg

Re: Запутался в связях

Попробуйте заменить GIF на JPG или PNG.

Визуальное программирование: блог и телеграм-канал.

Re: Запутался в связях

Да Константин, вы полностью правы.


Из той же справки по ФастРепорт. Раздел про рисунки.

Следующий объект, который мы рассмотрим - это объект "Рисунок". Он также довольно часто используется в отчетах. С помощью объекта вы можете вставить в отчет логотип вашей фирмы, фотографию сотрудника или любую другую графическую информацию. Объект способен отображать графику в формате BMP, JPEG, ICO, WMF, EMF.

36 (edited by sparrow 2024-01-29 09:18:17)

Re: Запутался в связях

k245 wrote:

Насчет скруглений - можно заморочиться и сделать так:
1) убрать штатные границы и добавить картинки с нарисованными круглыми рамками
2) убрать штатные границы и добавить TShape c закругленными углами.
3) убрать штатные границы и рисовать на канве формы/панелей


Константин,
Я попробовал третий вариант. Рабочий. Только требует дополнительной обработки в событии OnPaint


https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10236

Post's attachments

Attachment icon 3.jpg 39.9 kb, 8 downloads since 2024-01-29 

Re: Запутался в связях

Мда... дело было не в бобине.... с  жпг все круто. Спасибо smile

Re: Запутался в связях

sparrow wrote:

Константин,
Я попробовал третий вариант. Рабочий. Только требует дополнительной обработки в событии OnPaint
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10236


Выглядит прилично, как я понимаю, возможен вариант с универсальным обработчиком  формы OnPaint, в котором производится обход компонентов на форме и отрисовка рамок при необходимости. И кода будет поменьше, чем при создании кучи TShape smile

Визуальное программирование: блог и телеграм-канал.

Re: Запутался в связях

Да все именно так.
Для всех панелей создается универсальный OnPaint в котором и отрисовываются границы и закрашивание при необходимости.

При старте формы создаются панели и накладываются компоненты.
В событии OnPaint вызывается процедура отрисовки/перерисовки.
Tag формы использую для запоминания что панели созданы во избежании повторного создания и ошибки.
В некоторых случаях нужно использовать небольшую задержку по таймеру для отрисовки/перерисовки.
Код проще из за упрощения рисования RoundRect.

var
...
  arrFrm: array of TAForm = [Form1, Form2, Form3, Form4, Form5];                      // list of Forms

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
  create(Sender);
end;
...
procedure create(Sender: TObject);
var
  tmpP: TdbPanel;
  i: integer;
  tmpMemo: TdbMemo;
...
  tmpForm: TAForm;
begin
     tmpForm := TAForm(Sender);
      if tmpForm.Components[i] is tdbEdit then                                          // Edit
      begin
        tmpEdit := TdbEdit(tmpForm.Components[i]);
        tmpEdit.borderstyle := bsNone;
        tmpP := tdbpanel.create(tmpForm);
        tmpP.name := 'tmp_'+tmpEdit.name;
        tmpP.Caption := '';
        tmpP.Parent := tmpEdit.Parent;
        tmpP.BevelWidth := 0;
        tmpP.SetBounds(tmpEdit.Left, tmpEdit.Top, tmpEdit.Width, tmpEdit.Height);
        tmpP.Anchors := tmpEdit.Anchors;
    //
        tmpEdit.Parent := tmpP;
        TControl(tmpEdit).SetBounds(4, 2, tmpEdit.Width - 8, tmpEdit.Height - 4);
      end;
...
procedure draw;
var                                                                                   // Draw and ReDraw
  i, f: integer;
  tmpPan: TdbPanel;
begin
    for i := 0 to arrFrm[f].componentcount - 1 do
    begin
      if (arrFrm[f].Components[i] is tdbpanel) and (copy(tdbpanel(arrFrm[f].Components[i]).name, 1, 4) = 'tmp_') then
      begin
        tmpPan := TdbPanel(arrFrm[f].Components[i]);
        tmpPan.canvas.brush.color := clWhite;
        tmpPan.canvas.pen.color := clBlack;
        tmpPan.canvas.roundRect(0, 0, tmpPan.width, tmpPan.height, 10, 10);
      end;
    end;
end;
...
procedure onp(Sender: Tobject);                                                       // OnPaint event
begin
  draw;
end;