16.02.2010, 12:16 | #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). |
|
|