Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2017, 09:20   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
Вопрос Отчет FastReport с картинками

Всем привет! Ребята подскажите как быть, не могу найти решения.

В общем база была у меня на microsoft access в таблице хранил путь к картинке, выводил их так 2017-11-14_12-13-24.png
И все работало как надо, никаких проблем.

Сейчас я создал ту же базу только теперь она лежит на сервере, подключаюсь и работаю с MyDac, но картинки не отображаются. Путь к картинке такого типа
http:\\111.111.11.11\img\picture.jp eg

Подскажите кто сталкивался с такой проблемкой?)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 14.11.2017, 09:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну, как я понимаю, FastReport работает с данными, которые получаются в датасете (наборе данных), возвращаемых в результате запроса. В данном случае, через MyDAC. А каким образом в frxDBDataset попадёт картинка, которая лежит где-то на сервере?

p.s. это просто мои размышления, возможно, что я и ошибаюсь.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2017, 10:20   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, как я понимаю, FastReport работает с данными, которые получаются в датасете (наборе данных), возвращаемых в результате запроса. В данном случае, через MyDAC. А каким образом в frxDBDataset попадёт картинка, которая лежит где-то на сервере?

p.s. это просто мои размышления, возможно, что я и ошибаюсь.
Все верно, но, картинка записана в виде ссылки, а картинку пока загружаю в ручную, потом можно будет автоматизировать этот процесс.
Оказывается TfrxPictureView отображает картинки я только с локальных или подключённых сетевых дисков.
Теперь другая проблема, нужно все как нибудь синхронизировать, пока не знаю как.
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 14.11.2017, 10:34   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
а картинку пока загружаю в ручную, потом можно будет автоматизировать этот процесс.
Оказывается TfrxPictureView отображает картинки я только с локальных или подключённых сетевых дисков.
так Вы уже почти всё сами сделали. Достаточно в Delphi загрузить картинки в локальный кеш. И отдать их в FastReport (теперь они уже будут локальные и он их увидит).
я даже больше Вам скажу: любой браузер именно так и поступает - выкачивает всё, что есть на странице из интернета на локальный диск, и только потом отображает.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2017, 13:33   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так Вы уже почти всё сами сделали. Достаточно в Delphi загрузить картинки в локальный кеш. И отдать их в FastReport (теперь они уже будут локальные и он их увидит).
я даже больше Вам скажу: любой браузер именно так и поступает - выкачивает всё, что есть на странице из интернета на локальный диск, и только потом отображает.
Подскажите пожалуйста про локальный кеш?
Для себя я пока нашел одно решение, оставить картинки на локалке))))
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 14.11.2017, 13:49   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
Подскажите пожалуйста про локальный кеш?
это просто папка на компьютере, куда Вы можете безопасно сохранить нужные файлики.
посмотрите, например, System.IOUtils.TPath.GetTempPath
или GetTempPath в Windows API - How to get the Windows temporary directory

вот в эту папку скачиваете нужные картинки (путь к ним у Вас в БД хранится, если я правильно понял).
Потом подставляется картинки в отчёт.


Цитата:
Сообщение от Fahman Посмотреть сообщение
Для себя я пока нашел одно решение, оставить картинки на локалке)
не логично. Если программа должна работать только на одной единственной локалке, тогда нет смысла городить огород с сетевой БД. А если программа может работать в сети не только одном единственном компьютере, тогда картинки придётся выкачивать.
Впрочем, хозяин - барин! Программа ваша и можете использовать её так, как Вам удобно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2017, 14:20   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это просто папка на компьютере, куда Вы можете безопасно сохранить нужные файлики.
посмотрите, например, System.IOUtils.TPath.GetTempPath
или GetTempPath в Windows API - How to get the Windows temporary directory

вот в эту папку скачиваете нужные картинки (путь к ним у Вас в БД хранится, если я правильно понял).
Потом подставляется картинки в отчёт.



не логично. Если программа должна работать только на одной единственной локалке, тогда нет смысла городить огород с сетевой БД. А если программа может работать в сети не только одном единственном компьютере, тогда картинки придётся выкачивать.
Впрочем, хозяин - барин! Программа ваша и можете использовать её так, как Вам удобно.
А если блобом хранить картинки? Сам не пробовал, сказали что это будет тормозить процесс вот я и не стал пробовать. Программа так себе, картинки нужны для заведующей склада, если мы поменяем сотрудника то любой другой сможет без труда найти тот или иной товар и отдать монтажникам.

И еще одна идея, подскажите правильно ли это будет. К примеру я использую 1 яндекс диск для хранения информации и что-бы программа работала можно же все с диска брать?
P.S. программой пользуются 4 компа всего лишь. на каждом компе есть доступ к данной программе да и картинки будут автоматически синхронизироваться со всеми ))
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 14.11.2017, 14:43   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
А если блобом хранить картинки?
это, конечно, сразу решит вашу проблему с доступом к картинкам по ссылкам.
НО!
Однако, это решение имеет свои недостатки. обычно картинки не очень маленького размера и их обычно очень много. Поэтому БД очень сильно вырастает в размерах со всеми вытекающими отсюда недостатками.

я бы лично так не делал. Хотя тут всё зависит от количества (от объёма == суммарного размера) всех картинок, конечно.


Цитата:
Сообщение от Fahman Посмотреть сообщение
И еще одна идея, подскажите правильно ли это будет. К примеру я использую 1 яндекс диск для хранения информации
не знаю. Тут зависит от того, насколько глубоко яндекс.диск эмулирует работу с файлами. Если с точки зрения Windows это локальные файлы, тогда будет работать.
Вы просто попробуйте. Возьмите простой код по отображению в runtime картинки в TImage и попробуйте отобразить картинку, находящуюся в яндекс.диск.
Кстати, полезно будет, если отпишетесь о результатах.


Цитата:
Сообщение от Fahman Посмотреть сообщение
P.S. программой пользуются 4 компа всего лишь. на каждом компе есть доступ к данной программе да и картинки будут автоматически синхронизироваться со всеми ))
а вот по поводу синхронизации - это сразу НЕТ! Это неправильное решение.
Никакой синхронизации не должно быть в принципе. Все компьютеры должны обращаться к одной и той же программе/серверу и должны брать картинки из одного источника.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2017, 06:11   #9
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это, конечно, сразу решит вашу проблему с доступом к картинкам по ссылкам.
НО!
Однако, это решение имеет свои недостатки. обычно картинки не очень маленького размера и их обычно очень много. Поэтому БД очень сильно вырастает в размерах со всеми вытекающими отсюда недостатками.

я бы лично так не делал. Хотя тут всё зависит от количества (от объёма == суммарного размера) всех картинок, конечно.



не знаю. Тут зависит от того, насколько глубоко яндекс.диск эмулирует работу с файлами. Если с точки зрения Windows это локальные файлы, тогда будет работать.
Вы просто попробуйте. Возьмите простой код по отображению в runtime картинки в TImage и попробуйте отобразить картинку, находящуюся в яндекс.диск.
Кстати, полезно будет, если отпишетесь о результатах.



а вот по поводу синхронизации - это сразу НЕТ! Это неправильное решение.
Никакой синхронизации не должно быть в принципе. Все компьютеры должны обращаться к одной и той же программе/серверу и должны брать картинки из одного источника.
Все решено, в принципе на яндекс диске норм. Все работает нормально! Спасибо всем за подсказки)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 23.11.2017, 13:03   #10
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Есть 2 компьютера 1 программа и 1 (яндекс диск)
На первом компьютере я заполняю базу и загружаю туда картинки в отчете filelink Я прописал [frxDBDataset1."picture"] и все работает отлично! Все показывает и работает нормально только на одном компьютере (((
т.к. у меня в базе прописан путь такой : C:\\Users\\E5 V3\\YandexDisk\\Astana-Class\\FUR\\2017-11-14 14-42-23.JPG
на этом компьютере все работает замечательно, на втором компе с ошибками, я понимаю что у другого компьютера будет не много отличаться путь до картинки. Подскажите как быть в данном случае?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отчет из FastReport термопринтер Vit@L Общие вопросы Delphi 6 30.04.2014 17:34
ms sql + delphi. Отчет в fastreport Ivan174 БД в Delphi 1 15.07.2013 14:29
Fastreport - повернуть отчет new player Компоненты Delphi 8 01.11.2011 16:57
FastReport. Сформировать отчет с заданной страницы ivc61 Общие вопросы Delphi 2 19.01.2011 19:32