Как Изменить Тип Поля С Текстового На Числовой?

Тема в разделе "Lotus - Программирование", создана пользователем wk01, 20 мар 2012.

  1. wk01

    wk01 Active Member

    Регистрация:
    8 май 2010
    Сообщения:
    31
    Симпатии:
    0
    доброго времени суток!
    вот такая получилась ситуация: была создана база, в которой по недальновидности (читай - рас*цензура*яйству) на форму было добавлено текстовое поле вместо числового; с базой взялись работать, наделали много документов; затем к базе потребовался веб-интерфейс с возможностью многокритериального поиска, в том числе и по вилке значений этого злополучного поля.
    веб-интерфейс - на xpages, поиск - viewPanel с вычисляемым свойством search, в которое пихается строка полнотекстового запроса. при попытке такого поиска по тому самому полю сервер отвечает runtime error'ом:
    Notes error: Relational operators are not supported in text fields

    вопросы: как изменить тип поля?

    что пробовал:
    1) в форме у поля сменил тип text на number, агентом прописал во всех документах численное значение - в поиске ничего не изменилось, та же ошибка;
    2) изменил тип поля в форме, прописал численные значения в документы, создал пустую базу и перекопировал в неё все элементы дизайна из первой базы (с уже изменённым типом поля), сделал из второй базы шаблон, обновил дизайн первой по нему - всё равно не ищет, продолжает ругаться и считать поле текстовым.

    неужели тип поля сопоставляется с названием поля при первом сохранении формы и остаётся на всю жизнь?
    если всё так печально, то для того, чтобы поиск заработал, видимо можно свежее числовое поле на форму бахнуть (которое лотус навсегда запомнит для себя числовым), агентом заполнить его числовыми значениями во всех документах, удалить старое текстовое поле из документов, перелопатить весь код и представления - чтоб обращения везде были к новому полю. но... может быть есть альтернатива?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    легче задать новое поле, труднее вычистить старое
    это поле пишется фактически во все элементы дизайна вроде поле $Fields
    с другой стороны полнотекстовый поиск для того чтобы что-то найти, он не для математических операций ;)
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    +1 проще создать новое поле. Если есть время, в качестве экспериментов можно удалить фт-индекс, сделать реплику и попробовать пересоздать базу из этой реплики (описано как решение тут http://www-10.lotus.com/ldd/46dom.nsf/78d8...a5?OpenDocument ).
    У нас как-то для дат обсуждалось в теме вот тут http://codeby.net/forum/threads/33246.html?vi...st&p=155420 и ниже сообщение.
     
  4. wk01

    wk01 Active Member

    Регистрация:
    8 май 2010
    Сообщения:
    31
    Симпатии:
    0
    всем спасибо за ответы! ;)
    эксперимент с созданием реплики удался - в новой реплике лотус признал наконец-то поле числовым, ftsearch заработал на отличненько!
     
Загрузка...

Поделиться этой страницей