Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17

FastReport - отчет на основании DataSet

26.12.2017, 13:28. Показов 3557. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не могу решить проблему.
Отчет формируется из данных из БД, в одной из таблиц есть ссылка на картинку, как можно отловить тот момент когда картинка должна загрузится из этого столбика, чтобы можно было загрузить её и отобразить?

Чтобы было понятнее, нужно примерно следующие:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
  http := TNetHTTPClient.Create(nil);
  ms := TMemoryStream.Create;
 
  MyQuery1.SQL.text := 'SELECT * FROM store';
  MyQuery1.Execute;
  http.Get(MyQuery1.FieldByName('photo').AsString, ms);
  ms.Position := 0;
 
  pic := frxReport1.FindObject('Picture2') as TfrxPictureView;
  pic.Picture.LoadFromStream(ms);
 
  http.Free;
  ms.Free;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.12.2017, 13:28
Ответы с готовыми решениями:

FastReport, как указать DataSet программно?
Доброго времени! помогите начинающему разобраться, что то никак не могу справиться((( Есть БД (Компоненты ADO) все соединение происходит...

FastReport берет только первую запись dataset
Всем здравствуйте Прошу помощь в понимании, что надо сделать, что fastreport цеплял все записи которые в dataset, а не только первую ...

Отчет в FastReport
Здравствуйте есть отчет в формате А4 мне нужно сделать чтобы этот отчет печатался в формате А5 на листе А4 альбомной ориентации. Как это...

17
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 745
26.12.2017, 14:03
А почему бы картинку в БД не хранить?
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
26.12.2017, 14:34  [ТС]
Картинки тяжелые, по несколько МБ, не хотелось бы сервер грузить.
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 745
26.12.2017, 15:22
Ну спор по этому вопросу не утихнет никогда, наверное . У хранения файлов на сервере тоже минусы есть. По сути файл в БД и файл на диске занимают столько же места, но бэкапить надо будет и БД и каталог с файлами, иначе потеря/порча файла может привести к наличию битых ссылок. А вариант уменьшить размеры файлов не рассматривали? Есть много сейчас для этого программ. Честно говоря не юзал фаст репорт с института, но у него вроде отдельная вкладка есть с набором компонентов. Посмотрите, может там есть что-то типа FastImage (взято из головы). И туда загрузить вашу картинку, потом связать с отчетом уже.
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
26.12.2017, 15:28  [ТС]
Цитата Сообщение от drvolodko Посмотреть сообщение
Посмотрите, может там есть что-то типа FastImage
Что есть данный компонент?

Возможно вы не поняли задачу. База лежит на удаленном сервере, которая постоянно обновляется, так что предварительно загрузить картинки не куда не получится, если вы это имели ввиду.
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 745
26.12.2017, 17:17
Цитата Сообщение от sitoci Посмотреть сообщение
База лежит на удаленном сервере, которая постоянно обновляется,
И что? Вы же можете получить доступ к базе? Соответственно можете и ссылку на файл из поля считать. Ну а дальше что мешает выполнить LoadFromFile()? Если, конечно у вас есть доступ к файлам на уровне файловой системы.
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
26.12.2017, 17:58  [ТС]
Цитата Сообщение от drvolodko Посмотреть сообщение
Соответственно можете и ссылку на файл из поля считать.
Так в этом и был вопрос, как это сделать.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
26.12.2017, 21:58
у датасета есть событие OnCalcFields
заведите туда блоб поле и качайте сколько влезет
только медленно очень
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
26.12.2017, 23:10  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
заведите туда блоб поле и качайте сколько влезет
Можно, пожалуйста, поподробней?
Миниатюры
FastReport - отчет на основании DataSet  
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
27.12.2017, 10:53
у датасета!
есть событие OnCalcFields
смотрите тему вычисляемые поля
добавить через Field Editor к датасету поле типа Blob, calculated
в событии OnCalcFields стандартно загружать данные в это поле через TStream
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
27.12.2017, 11:28  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
у датасета!
У него нет такого события
Миниатюры
FastReport - отчет на основании DataSet  
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
27.12.2017, 11:45
это TfrxDataset
он просто берет данные у датасета
а у датасета все есть
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
27.12.2017, 11:50  [ТС]
Речь про компонент myquery?
Миниатюры
FastReport - отчет на основании DataSet  
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 745
27.12.2017, 11:50
Цитата Сообщение от sitoci Посмотреть сообщение
У него нет такого события
У ДАТАСЕТА есть! Тот же Adoquery или с чем вы там связываете фаст репорт...
Миниатюры
FastReport - отчет на основании DataSet  
0
0 / 0 / 0
Регистрация: 26.12.2017
Сообщений: 17
27.12.2017, 12:07  [ТС]
С этим вроде разобрался, но что дальше я не понял.
Миниатюры
FastReport - отчет на основании DataSet  
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
27.12.2017, 12:19
а что остальные-то поля не добавили ?
вам бы книжечек-то почитать, хотя б базовый набор работы с БД

и гугл "работа с BLOB delphi ado" дает вполне сносные советы
http://devdelphi.ru/?p=51
0
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 745
27.12.2017, 13:23
А дальше считываете ссылку на файл из базы и загружаете его в свое поле.
Delphi
1
MyQueryPhoto.LoadFromFile(MyQuery.FieldByName('имя поля со ссылкой на файло').value);
Примерно как-то так.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
27.12.2017, 13:40
а разве оно не само это делает???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2017, 13:40
Помогаю со студенческими работами здесь

Отчет FastReport
Добрый день! У меня такой вопрос. При создании отчета нет информации в таблице, не загружаются. Не могу понять в чем дело? Вроде бы...

FastReport отчет из запроса
У кого есть пример как в FastReport формировать отчет из запроса(Query)?

Отчет FastReport по колонкам из DBGrid
Всем привет. Поиск по форуму вразумительного ответа не дал. Для того, чтобы вывести в отчет FastReport (версия 4) данные из Query в...

Fastreport создание отчет в delphi
Помогите пожалуйста!!!:help: Нужно создать отчет "Приход и расход товаров за месяц". Я создала но у меня по дате. Как сделать за...

Отчет FastReport - передать переменную
Доброго времени суток. У меня такой вот вопрос. Нужно из программы (т.е. некоторой переменной) передать значение компаненту в отчете,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru