Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
У меня вот такой вопрос:
Как записывать изображения в поле general?И как потом реализовать вывод этой картинки на форму?
13 фев 06, 12:57    [2349697]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
FoxLamer
Member

Откуда: СССР
Сообщений: 167
Какая версия VFP?
13 фев 06, 13:35    [2349920]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
девятка...
13 фев 06, 13:44    [2349963]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
piva
Member

Откуда: Курган
Сообщений: 1096
general забудь как страшный сон наследия fpw 2.5 в 9-ке пользуй memo(binary), Blob и свойство картинка PictureVal
13 фев 06, 13:47    [2349979]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
FoxLamer
Member

Откуда: СССР
Сообщений: 167
В 9-ке лучше использовать Blob

*Например так:

*Запись
pFilePicture=''

pFilePicture=GETFILE([*] , [Файлы] , [Выбрать], 0, [Загрузка файла])

if file(pFilePicture)
CREATE CURSOR foto_full(ffull blob)
APPEND BLANK
APPEND MEMO ffull FROM (pFilePicture) OVERWRITE
endif

*чтение
thisform._image1.Pictureval = foto_full.ffull
13 фев 06, 13:53    [2350020]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
guest 002
Guest
а как можно передат этот файл (*bmp) в Report
13 фев 06, 14:17    [2350139]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
FoxLamer
Member

Откуда: СССР
Сообщений: 167
Например так:
m.cTmpFile='c:\'+SYS(2015)+'.bmp'
COPY MEMO fotofull.ffull TO (m.cTmpFile)
SELECT fotofull

REPORT FORM report_img preview

В репорте в качестве источника OLE объекта указать переменную m.cTmpFile
13 фев 06, 16:40    [2350923]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
Спасибо
17 фев 06, 15:22    [2368274]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
Все получилось...
Но мне нужно немного другое.Простоя несовсем правильно сформулировал вопрос.
Мне необходимо,чтобы картинки загружались в талицу.В данном же случае изображения просто перезаписываются каждый раз на новые...
21 фев 06, 12:15    [2377452]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
FoxLamer
Member

Откуда: СССР
Сообщений: 167
LPARAMETERS pcAlias


IF NOT EMPTY(pcAlias) AND USED(pcAlias)

*директория для временных файлов
	lcName = goApp.GetIniValue("FILES", "TempFile", "d:\temp\")

	IF NOT DIRECTORY(lcName)
		MD (lcName)
	ENDIF 

	SELECT &pcAlias

	IF RECCOUNT()>0
*выгружаем картинки из курсора во временные файлы
	SCAN
		m.cfile=m.lcName+SYS(2015)+fil_ext
		COPY MEMO fil_jpg TO (m.cfile)
              *сохраняем в курсоре путь к файлу картинки
		replace filepath WITH  m.cfile
	ENDSCAN
* выводим картинки в отчет
	REPORT FORM report_img PREVIEW 

*удаляем временные файлы
	SELECT &pcAlias
	SCAN
		IF FILE(ALLTRIM(filepath))
			DELETE FILE (ALLTRIM(filepath))
		ENDIF 
	
	ENDSCAN


	ENDIF 

ENDIF 
21 фев 06, 14:31    [2378340]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
Опять вы меня не поняли...
Мне неоходимо завести таблицу с личной информацией сотрудников...его фамилия,имя,личное дело и т.д,а также его фотографию.
26 фев 06, 12:41    [2390401]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
А в чем проблема?!
Храни сам файл в поле типа MEMO (или BLOB если VFP 9.0)
Картинку на форме отображай через объект класса Image.
Для вывода картинки (как пример):
m.lcFile =  "c:\temp\image1.jpg"
SELECT myCursor
COPY MEMO Photo TO (m.lcFile)  && Поле Photo содержит файл с картинкой
THISFORM.imgPhoto.Picture = m.lcFile
С уважением, Алексей
26 фев 06, 13:02    [2390535]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Загрузка файла в General делается командой

APPEND GENERAL

Проблема только в том, что использование поля General связано с рядом ограничений.

Главное из которых заклчается в том, что клиент должен иметь то же самое приложение, которое было у разработчика для просмотра изображений, хранящихся в поле General. Иначе у клиента просто не будет "картинки".

Другая проблема - это невозможность программного манипулирования содержимым поля General.


Поэтому, как правило, используют 2 стратегии работы с картинками:

1) Загружают файл картинки в поля Memo-binary. Для VFP9 используют поля BLOB. Для просмотра файла выгружают его во временный файл на диске.

2) Файл картинки вообще не встраивается в таблицу, а хранится как отдельный файл на диске. В таблице же хранят только путь доступа к нужной картинке.
26 фев 06, 13:08    [2390587]     Ответить | Цитировать Сообщить модератору
 Re: General  [new]
Fharlep
Member

Откуда:
Сообщений: 8
Спасибо за совет
26 фев 06, 15:42    [2391379]     Ответить | Цитировать Сообщить модератору
 еще вопросик  [new]
ВСЕЗНАЮ
Guest
как в прг-программе определить размеры картинки? высоту и ширину..
30 апр 06, 00:10    [2617273]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить