AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.05.2012, 12:08   #1  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Всем доброго дня!

Из документа формируется Акт в формате 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  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
может, поможет

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  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Дуд, спасибо за совет.

Попробую, напишу здесь о результате.
Старый 11.05.2012, 15:19   #4  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
еще есть ф-ция TEMPORARYPATH, возвращает путь до временной папки текущего пользователя.
Старый 11.05.2012, 15:32   #5  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
в 3.7 ее, по-моему, нет, к сожалению
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 12.05.2012, 10:48   #6  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
InTacto, спасибо за совет!

Нету в 3.7 TEMPORARYPATH. Но мы собираемся переходить на версию поновее.
Старый 14.05.2012, 11:35   #7  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва


Попробовала использовать 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  
ОльгаМ is offline
ОльгаМ
Участник
 
36 / 10 (1) +
Регистрация: 07.09.2004
Адрес: Москва
Цитата:
Сообщение от 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;

Работает.
Пока еще не проверили проблемные пользователи, но думаю эторешит проблему.

Напишу позже.
Для создания имени временного файла Вам не подходит ENVIRON('TMP')?
Старый 22.05.2012, 11:25   #9  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
helga7289, спасибо за рекомендацию.

Не видела раньше эту ф-цию: в текущий проект пришла с Нав 5, не помню, чтобы она использовалась.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:51.