11.05.2012, 12:08 | #1 |
Участник
|
Всем доброго дня!
Из документа формируется Акт в формате Excel, в нем выводится логотип юр.лица, от которого выставлятся Акт. Логотипы хранятся в таблице юрлиц для каждого юрлица холдинга. Я не знаю другого способа вывести BLOB в Excel, кроме как вывести его из файла, например IF FileLogo1 <> '' THEN Excel.AddPicture(FileLogo1, 50, 2, 115, 70); Предварительно беру логотип из таблицы и создаю файл с BLOB-логотипом. IF MComp."FilePath Export Logo" <> '' THEN BEGIN FileLogo := MComp."FilePath Export Logo"+'2.bmp'; MComp.CALCFIELDS(Logo); IF MComp.Logo.HASVALUE THEN FileLogo1:= MComp.Logo.EXPORT(FileLogo, FALSE); END; Файл создаю по одному и тому же пути. Например, на диске V. Проблема возникает, если пользователь работает через Citrix и у него не мапится диск V. Админы хотят, чтобы файл с логотипом создавался в профиле пользователя. Но я не знаю, как из Нава залезть в профиль пользователя и узнать в какой папке создавать файл. Нав 3.70.А. Подскажите, пжл, какие варианты решения существуют? Спасибо. |
|
11.05.2012, 13:22 | #2 |
NavAx
|
может, поможет
CREATETEMPFILE (File) Use this function to create a temporary file. This enables you to save data of any format to a temporary file. This file has a unique name and will be stored in the temporary files folder.
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
11.05.2012, 15:00 | #3 |
Участник
|
Дуд, спасибо за совет.
Попробую, напишу здесь о результате. |
|
11.05.2012, 15:19 | #4 |
Участник
|
еще есть ф-ция TEMPORARYPATH, возвращает путь до временной папки текущего пользователя.
|
|
11.05.2012, 15:32 | #5 |
NavAx
|
в 3.7 ее, по-моему, нет, к сожалению
__________________
"Моей лошадке ядрышком полмордочки снесло..." А.В.Суворов, письма к дочери |
|
12.05.2012, 10:48 | #6 |
Участник
|
InTacto, спасибо за совет!
Нету в 3.7 TEMPORARYPATH. Но мы собираемся переходить на версию поновее. |
|
14.05.2012, 11:35 | #7 |
Участник
|
Попробовала использовать CREATETEMPFILE , как псевдо-TEMPORARYPATH, которой нет в нашей версии. Т.е. создаю временный файл, беру NAME его имя, и закрываю временный файл. А потом экспортирую BLOB. FileName1.CREATETEMPFILE; FileLogo := FileName1.NAME; IF FileLogo <> '' THEN FileName1.CLOSE; MComp.CALCFIELDS(Logo); IF MComp.Logo.HASVALUE THEN BEGIN FileLogo1:= MComp.Logo.EXPORT(FileLogo, FALSE); END; Работает. Пока еще не проверили проблемные пользователи, но думаю эторешит проблему. Напишу позже. |
|
15.05.2012, 10:27 | #8 |
Участник
|
Цитата:
Сообщение от mira
Попробовала использовать CREATETEMPFILE , как псевдо-TEMPORARYPATH, которой нет в нашей версии. Т.е. создаю временный файл, беру NAME его имя, и закрываю временный файл. А потом экспортирую BLOB. FileName1.CREATETEMPFILE; FileLogo := FileName1.NAME; IF FileLogo <> '' THEN FileName1.CLOSE; MComp.CALCFIELDS(Logo); IF MComp.Logo.HASVALUE THEN BEGIN FileLogo1:= MComp.Logo.EXPORT(FileLogo, FALSE); END; Работает. Пока еще не проверили проблемные пользователи, но думаю эторешит проблему. Напишу позже. |
|
22.05.2012, 11:25 | #9 |
Участник
|
helga7289, спасибо за рекомендацию.
Не видела раньше эту ф-цию: в текущий проект пришла с Нав 5, не помню, чтобы она использовалась. |
|