Вопрос

Добавить текст в Html

Добрый день

В Е-мейл активности при нажатии на кнопку нужно добавить в HtmlBody этой Е-мейл-активности имя контакта текущего пользователя. Пишу скрипт:

string html = Page.DataSource.ActiveRow.GetTypedColumnValue("HtmlBody");

Guid contactId = UserConnection.CurrentUser.ContactId; //id контакта текущего пользователя
string contactName = UserConnection.CurrentUser.ContactName; //имя контакта текущего пользователя

string str = String.Concat(contactName, html);

var defValuesId = Entity.GetTypedColumnValue("ActivityId");
var defValues = ? // что здесь нужно написать?

defValues.Add("HtmlBody", str);

Заранее спасибо.

У меня такой же вопрос

10 комментариев
Зверев Александр

Что именно написать в коде, зависит от того, что Вы хотите получить.
Если вбить в поиск по конфигурации «var defValues =», получим:

var defValues = new Dictionary <string, object>();

Вообще, поиском по конфигурации можно найти много готовых приёмов, которые можно использовать в своих целях. Рекомендую поискать в коде других страниц похожую логику.

TatianaM

А если я хочу заменить содержимое HtmlBody в открытом док-те нажатием на опред.кнопку, правильно ли я использую var defValues ? Заранее спасибо.

TatianaM

Получилось и работает:

string html = Page.DataSource.ActiveRow.GetTypedColumnValue("HtmlBody");

Guid contactId = UserConnection.CurrentUser.ContactId; //id контакта текущего пользователя
string contactName = UserConnection.CurrentUser.ContactName; //имя контакта текущего пользователя

string str = String.Concat(contactName, html);

Page.DataSource.ActiveRow.SetColumnValue("HtmlBody", str);

return true;

TatianaM

Если поставить теги , то в BPMOnline вид текста в е-мейл активности отображается с учетом переносов на новую строчку. Но, отправив на эл.адрес эту е-мейл, вижу: в Qutlook в полученном электронном письме текст слился в одну строчку. Подскажите, пожалуйста, как можно этого избежать? Заранее спасибо

Полный текст:
string html = Page.DataSource.ActiveRow.GetTypedColumnValue("HtmlBody");

Guid contactId = UserConnection.CurrentUser.ContactId; //id контакта текущего пользователя
string contactName = UserConnection.CurrentUser.ContactName; //имя контакта текущего пользователя
string contactmail = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "Email", contactId);
string contactdol = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "JobTitle", contactId);
string contactphone = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "Phone", contactId);
string contactMobilePhone = Terrasoft.Configuration.CommonUtilities.GetEntityTypedColumnValue(UserConnection, "Contact", "MobilePhone", contactId);

string s6 = "Добрый день"+"С уважением,"+ contactName + "" + contactdol + "Департамент информационных технологий АО «ДКС»"+ "Tel :"+ contactphone + ", " + contactMobilePhone + " e-mail :"+ contactmail +" , www.dkc.ru";

string str = String.Concat(s6, html);

Page.DataSource.ActiveRow.SetColumnValue("HtmlBody", str);

TatianaM

Погодите...
Если html содержит картинку, то текст вываливается в одну строчку, а если html нет картинок, то текст прописывается как надо. Подскажите, пжста, есть ли решение, как уйти от этой проблемы? Заранее спасибо

TatianaM

Погодите...
Если html содержит картинку, то текст вываливается в одну строчку, а если html нет картинок, то текст прописывается как надо. Подскажите, пжста, есть ли решение, как уйти от этой проблемы? Заранее спасибо

Зверев Александр

Перенос строк в письме формата HTML делается так же, как и в других HTML-страницах: при помощи тега

<br>

или более сложных конструкций вёрстки. Обычные переносы строк в тексте по Enter при этом не учитываются.

TatianaM

Если html содержит картинку, то текст вываливается в одну строчку, а если html нет картинок, то текст прописывается как надо. Подскажите, пжста, есть ли решение, как уйти от этой проблемы? Заранее спасибо

Зверев Александр

Решение — не использовать картинки или использовать их вставку в таком формате, в котором текст выглядит правильно. Сформируйте вручную в почтовом клиенте письмо нужного формата и посмотрите, что за HTML-код получается.

TatianaM

Нашла более простой вариант: после того, как подпись проставилась в е-мейл-активности, нужно нажать на Enter в конце подписи. Итог: в полученном в Outlook письме текст подписи не схлопывается в одну строку.

Войдите или зарегистрируйтесь, чтобы комментировать