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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.04.2008, 16:12   #1  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Упрощаем поиск
Давече возникла передо мной задача - убрать из поиска все атрибуты, которых нет на форме объекта. Задача не сложная, но захотелось оптимизировать - хотя бы автоматически получить список всех полей на форме. Вот так, например:

var str;
var fields = crmForm.all;
for (var i=0; i<fields.length; i++)
{
if (fields[i] != null && fields[i].Label != null )
{
str+= "\n" + fields[i].Label;
}
}
crmForm.all.description.DataValue = str

Пусто. Стал проверять и оказалось, что на форме у меня больше 500 полей и ни у одного из них не отображается метка. Коллеги, есть догадки на этот счет?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 29.04.2008, 18:03   #2  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
Т.е. Вы хотите получить название этих самых полей? Но вроде у объекта нет свойства Label.
X++:
function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        }
    }
    
    return classElements;
}

function getElementsByAttribute(node,tag,attribute,value) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    for (var i=0, j=0; i<elsLen; i++)
    {
        if(els[i].getAttribute(attribute) == value)
      {
            classElements[j] = els[i];
            j++;
      }
    }
    
    return classElements;
}
Используйте любую. Чтобы найти все метки что-то типа getElementsByClass("td", null, "n") - получите все метки необязательные к заполнению. Есть еще "req" и "rec", а далее смотрите свойство Titile.
Удачи!
__________________
MS CRM 3.0/4.0
Sharepoint 2003, MOSS 2007/2010
Старый 30.04.2008, 08:22   #3  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Свойство Label описано в SDK:
{Field}.Label String Get property. Returns the label used on the control. It can return null if the label is not being displayed on the form.
К сожалению getElementsByClass("td", null, "n") не работает. Я не очень силен в веб программировании, так что не берусь судить почему.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional

Последний раз редактировалось Артем Enot Грунин; 30.04.2008 в 08:25.
Старый 30.04.2008, 09:32   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Решил вопрос проще и в некотором роде удобнее - получил список полей которых нет на форме. Просто нажимаем кнопку "добавить поля" и видим все атрибуты которые нужно удалить из поиска. Прошу прощения, за бесполезный пост.
Вопрос почему не работает свойство Label оставляю открытым.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 30.04.2008, 13:59   #5  
ShurikEv is offline
ShurikEv
CRM
 
213 / 28 (1) +++
Регистрация: 25.04.2006
Адрес: г. Новосибирск
Ну да, точно! Я и не подумал Давно кастомизацией не занимался
__________________
MS CRM 3.0/4.0
Sharepoint 2003, MOSS 2007/2010
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный поиск - ошибка valk Dynamics CRM: Функционал 6 24.02.2009 12:19
Поиск дубликатов. Очень странно Лапка Dynamics CRM: Функционал 7 19.01.2009 11:32
Поля partylist, поиск и сортировка sergeyjb Dynamics CRM: Функционал 0 25.12.2008 14:00
Как организовать полнотекстовый поиск. tatra Dynamics CRM: Разработка 5 26.12.2007 09:44
Расширенный поиск по дате рождения MayBe Dynamics CRM: Функционал 6 01.11.2006 10:58
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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