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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.05.2009, 09:28   #1  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Коллеги, день добрый.
Никто не сталкивался с ситуацией когда нужно создать из Navision html письмо с форматированием и с картинками. С помощью codeunit 397 Mail письма в Outlook создаются прекрасно, но они в текстовом формате...
Буду очень благодарен, если кто подкинет идею.
Старый 28.05.2009, 10:55   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от .rejector. Посмотреть сообщение
Коллеги, день добрый.
Никто не сталкивался с ситуацией когда нужно создать из Navision html письмо с форматированием и с картинками. С помощью codeunit 397 Mail письма в Outlook создаются прекрасно, но они в текстовом формате...
Буду очень благодарен, если кто подкинет идею.
Либо самому писать прогу, либо найти прогу для конвертации и настроить её, чтобы отрабатывало меню File->Send->Form to Program.
А html стандартизированный или постоянно его стуктура меняется?
Старый 28.05.2009, 11:22   #3  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Стандартизированный. Просто письмо должно быть красивое, с форматированием и картинками
Старый 28.05.2009, 12:56   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от .rejector. Посмотреть сообщение
Стандартизированный. Просто письмо должно быть красивое, с форматированием и картинками
REPORT.SAVEASHTML(FileName). Затем FileName вкладываете в письмо.
Старый 28.05.2009, 13:08   #5  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Это получится письмо с вложением, а нужно html письмо.
Еще нужно что бы ушедшее письмо осталось в папке "Исходящее"
Ох...
Старый 28.05.2009, 14:24   #6  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Возможно так поможет:
OutlookMsg:=OutlookApp.CreateItem(0);
OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(lFileName, 1);
OutlookMsg.Display;
Старый 28.05.2009, 17:02   #7  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
А чуть поподробней плиз...
Какой Automation, какой метод.
Старый 29.05.2009, 08:53   #8  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
OutlookApp Automation 'Microsoft Outlook 11.0 Object Library'.Application
OutlookMsg Automation 'Microsoft Outlook 11.0 Object Library'.MailItem
OutlookAttach Automation 'Microsoft Outlook 11.0 Object Library'.Attachments

Методы собственно в коде.
Старый 29.05.2009, 09:56   #9  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
rmv, спасибо большое!!! Все получилось.

Возникла ещё проблемка, в получившимся html письме нужно произвести вставку, например, имени клиента. Сам шаблон, на основании которого формируется письмо, имени не содержит.
То есть шаблон выглядит так:

Уважаемый %1!
Ваш заказ № %2 бла, бла...
Всего наилучшего!


В письмо этот шаблон затягивается, всё прекрасно. А вот как теперь вместо %1 и %2 подставить значения из заказа?
Формировать новый шаблон, путем копирования оригинального шаблона, модифицировать налету, вставлять созданный шаблон в файл, а после отправки удалять... Наверняка есть более корректный метод.
Старый 03.06.2009, 10:16   #10  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от .rejector. Посмотреть сообщение
rmv, спасибо большое!!! Все получилось.

Возникла ещё проблемка, в получившимся html письме нужно произвести вставку, например, имени клиента. Сам шаблон, на основании которого формируется письмо, имени не содержит.
То есть шаблон выглядит так:

Уважаемый %1!
Ваш заказ № %2 бла, бла...
Всего наилучшего!


В письмо этот шаблон затягивается, всё прекрасно. А вот как теперь вместо %1 и %2 подставить значения из заказа?
Формировать новый шаблон, путем копирования оригинального шаблона, модифицировать налету, вставлять созданный шаблон в файл, а после отправки удалять... Наверняка есть более корректный метод.
Я формировал XHTML в самом Навижне (нужно было сгенерить таблицу с ссылками на документы Нава).
При использовании шаблонов возможно лучший вариант использовать методы Replace (если таковые есть) текстового редактора Outlook'a.
Старый 02.06.2009, 12:52   #11  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
А пришлите код, которым заполняете Body сообщения
Старый 04.06.2009, 09:59   #12  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Цитата:
Сообщение от .Quattro. Посмотреть сообщение
А пришлите код, которым заполняете Body сообщения
Написал с подсказки rmv следующую функцию
Код:
SendMessage(From : Text[100];To : Text[1024];ToName : Text[250];Subject : Text[250];TextBody : Text[1024];Attachment : Text[500])

IF ISCLEAR(OutlookApp) THEN
  CREATE(OutlookApp);
OutlookMsg:=OutlookApp.CreateItem(0);

OutlookMsg."To"("To");
OutlookMsg.Subject(Subject);

OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(Attachment, 1);
OutlookMsg.Display;
В параметре Attachment передаю путь к файлу HTML-шаблона.
Старый 05.06.2009, 16:41   #13  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Цитата:
Сообщение от .rejector. Посмотреть сообщение
Написал с подсказки rmv следующую функцию
Код:
SendMessage(From : Text[100];To : Text[1024];ToName : Text[250];Subject : Text[250];TextBody : Text[1024];Attachment : Text[500])

IF ISCLEAR(OutlookApp) THEN
  CREATE(OutlookApp);
OutlookMsg:=OutlookApp.CreateItem(0);

OutlookMsg."To"("To");
OutlookMsg.Subject(Subject);

OutlookAttach:=OutlookMsg.Attachments;
OutlookAttach.Add(Attachment, 1);
OutlookMsg.Display;
В параметре Attachment передаю путь к файлу HTML-шаблона.
Ну а что мешает сформировать тело письма вида:
Цитата:
OutlookMsg.HTMLBody := STRSUBSTNO('Шаблон', Параметры);
Кстати, Ваш пример с незапущенным Outlook'ом скорее всего не сработает - надо Logon делать перед созданием сообщения.
Старый 05.06.2009, 16:53   #14  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от .Quattro. Посмотреть сообщение
Ну а что мешает сформировать тело письма вида:
OutlookMsg.HTMLBody := STRSUBSTNO('Шаблон', Параметры);
Мне помешает ограничение в 1000 символов.

Цитата:
Сообщение от .Quattro. Посмотреть сообщение
Кстати, Ваш пример с незапущенным Outlook'ом скорее всего не сработает - надо Logon делать перед созданием сообщения.
Не исключено . Полагаю впрочем, что автора топика этот вопрос пока сильно не волнует.
Старый 04.06.2009, 11:41   #15  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Цитата:
Сообщение от rmv Посмотреть сообщение
При использовании шаблонов возможно лучший вариант использовать методы Replace (если таковые есть) текстового редактора Outlook'a.
Наверняка есть, но мои попытки найти такой метод ни к чему не привели.
Старый 06.06.2009, 19:20   #16  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Да, действительно шаблон письмо больше 1024 символов.
Вопрос с запущенным Outlook действительно не волнует, те кому нужно эта функция, имею запущенный Outlook по умолчанию.
Старый 11.06.2009, 15:12   #17  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
А в каком виде хранится шаблон сообщения? - В записях таблицы в Нав или как отдельный файл на сервере?

Ограничение в длине переменной в 1024 символа здесь вообще ни при чем. HTMLBody не ограничена этим значеним.
Старый 15.06.2009, 10:00   #18  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Шаблон хранится как отдельный файл на сервере.
Старый 15.06.2009, 10:53   #19  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Тогда можно же этот файл построчно записать в HTMLBody письма. Через STRSUBSTNO заменить параметры на значения.
Старый 17.06.2009, 09:28   #20  
.rejector._imported is offline
.rejector._imported
Участник
 
47 / 10 (1) +
Регистрация: 08.04.2004
Да, блин, так уже и сделал. Но мне не нравится, как то это через костыли получается.
 


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

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

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