1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Getitemvaluedatetimearray И Null

Тема в разделе "Lotus - Xpages", создана пользователем vvlad, 4 апр 2013.

  1. vvlad

    vvlad Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Hi ALL!

    На xpage есть следующий элемент:


    Код:
    <xp:text id="computedField5">
    <xp:this.value><![CDATA[#{java script:
    
    doc1=database.getDocumentByUNID(sessionScope.get("parentdocid"));
    if(doc1.getItemValueDateTimeArray("Date1")!=null){"ОК"}else{"НЕ ОК"};
    
    }]]>
    </xp:this.value>
    </xp:text>
    Если поле Date1 заполнено - все в порядке и я вижу "ОК", если же поле пустое - runtime error:

    Error while executing JavaScript computed expression
    Script interpreter error, line=2, col=9: [TypeError] Exception occurred calling method NotesDocument.getItemValueDateTimeArray(string) null


    подскажите, что я делаю не так?
     
  2. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.375
    Симпатии:
    336
    может док у вас нул
     
  3. vvlad

    vvlad Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    нет, с доком все нормально, ошибка только, если поле с датой пустое.
    Текстовые поля отображаются нормально.
     
  4. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.375
    Симпатии:
    336
    когда поле пустое - оно есть физически в доке?
     
  5. vvlad

    vvlad Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    есть.
    Открываю док в Notes - заполняю дату - вижу ОК в xpage
    Открываю док в Notes - очищаю дату - вижу ошибку
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.784
    Симпатии:
    42
    а почему не взять getItemValueString ?
     
  7. vvlad

    vvlad Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    не работает оно для полей типа Date\Time
     
  8. Zeka

    Zeka Well-Known Member

    Репутация:
    0
    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Похоже баг очерядной.
    А что сделать-то надо?

    Проверить, есть ли в поле значение можно так - doc1.getItemValue("Date1").size()>0
     
  9. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    1
    Регистрация:
    27 авг 2008
    Сообщения:
    6.375
    Симпатии:
    336
    теоретически тип поля будет не дата, когда пустое оно, как вариант проверить value на тип
    или просто поставить в блок try/catch и забить на эту фичу :)
     
  10. vvlad

    vvlad Well-Known Member

    Репутация:
    0
    Регистрация:
    19 янв 2007
    Сообщения:
    63
    Симпатии:
    0
    Нужно вывести на странице дату из документа :)

    doc1.getItemValue("Date1").size()>0 - то, что нужно

    альтернативное решение:

    try {
    doc1.getItemValueDateTimeArray("Date1")
    } catch(e) {
    "ДАТА НЕ ОПРЕДЕЛЕНА"
    }

    Всем спасибо!!!
     
Загрузка...

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