|
|
#1 |
|
Участник
|
Добавление на форму любого текста или Html кода.
Ранее столкнулся с проблемой, что в CRM 3.0 нельзя добавлять на форму во вкладке свой произвольный текст. Вот тут было обсуждение, но приемлемого решения так и не нашлось.
Собственно вот способ добавления любого текста, html контролов, таблиц, в общем всего в рамках html. Небольшое отступление: Когда в CRM выводится какой-то атрибут на форму, то создаются две ячейки, для названия атрибута и для самого контрола и присваиваются им id. Вот например для атрибута типа text (<input ..> немного подсократил) создался такой текст: Код: <td id="new_profit_c" class="n">Ожидаемая прибыль (p.)</td> <td id="new_profit_d"><input type='text' id="new_profit" value="6000"></td> Id самого атрибута: id="new_profit" Id ячейки для названия: id="new_profit_c" Id ячейки для вывода контрола: id="new_profit_d" Если в настройках атрибута убрать галку с "Отображать подпись в форме" и в форматировании выбрать "Два столбца" то у нас на форме останется одна ячейка шириной во всю форму ввода с Id ячейки для вывода контрола Id="new_profit_d". Это нам даст так сказать "оперативный простор" ![]() И так, если добавить новый атрибут и добавить его на форму в необходимое нам место, то: 1. он будет иметь в БД значение null, так как новый и если мы его в коде уберем, то и его значение и останется null и на запись формы он влиять не будет. 2. мы сможем его заменить на то, что нам надо без каких либо последствий. Теперь меняем в onload: Код: //проверяем на существование
if(window.document.getElementById("new_profit_d") != null)
{
//Поехали
var elem = window.document.getElementById("new_profit_d");
//1. если нам нужна просто строка с текстом
elem.innerHTML = "";
elem.innerText = "Вот наша строка с текстом";
//2. если нам нужна например кнопка с вызовом произвольной javascript функции
//как добавлять свои javascript функции описано много где на форуме и т.п.
elem.innerText = "";
elem.innerHTML = "<input type='button' id='movemonth' name='movemonth' onclick='move_months();' value='Обновить месяца'>";
//3. можно вставить свою таблицу
elem.innerText = "";
elem.innerHTML = "<table border='1'><tr><td>Тест 1.1</td><td>Тест 1.2</td></tr><tr><td>Тест 2.1</td><td>Тест 2.2</td></tr></table>";
elem.style.height="100%"; //необходимо чтобы таблица отображалась полностью по высоте
//4. все что душе угодно в рамках html
//Например можно в javascript функции вызвать WebService, получить там необходимые
//произвольные данные из других объектов, связанных представлений и т.п.
//и вывести их на этой форме в табличке и т.п :)
//Была у меня как-то такая задача, вывести на форме список объектов из связанного представления, раньше отвечал что нельзя, а теперь можно :)
}Будет ли работать в CRM 4.0 не знаю, но думаю что да или с некоторыми нюансами. С уважением к Вам и т.п.
|
|
|
|
| За это сообщение автора поблагодарили: Bondonello (2). | |
|
|
|