Не Добавляет Значение В Документ

Тема в разделе "Lotus - Xpages", создана пользователем JohnLemon, 15 сен 2014.

  1. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Здравствуйте, существует небольшая проблема! Мне необходимо создать документ с типом дата, я ставлю на форму поле Дата, затем создаю xPages страницу на нее, вношу компонент djDateTextBox(указываю request scope rDate), создаю кнопку со следующим кодом
    Код (Text):
    var doc = database.createDocument();
    doc.replaceItemValue("Form", "Date");
    doc.replaceItemValue("vDate", requestScope.rDate);
    doc.save();
    Если поле компонента пустое, то есть дата не выбрана, документ создается с пустым значением, если выбираю дату то ошибка: HTTP Web Server: Command Not Handled Exception. В чем может быть проблема я думаю что тут что то с типами данных но что именно. Или подскажите как отловить такую ошибку что бы было понятно в чем беда ) ?
     
  2. ty3uk

    ty3uk Well-Known Member

    Регистрация:
    31 мар 2008
    Сообщения:
    169
    Симпатии:
    0
    чем не устраивает стандартный компонент?
    Код (Text):
    <xp:inputText id="StartDate" value="#{sessionScope.inputStartDate}">
    <xp:this.converter>
    <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
    <xp:dateTimeHelper></xp:dateTimeHelper>    
    </xp:inputText>
    есть какие-то проблемы?
     
  3. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Да проблема в том что я хочу использовать еще djTimeTextBox (для того что бы пользователь выбирал еще время отдельно а не вбивал руками его), и inputRichText, а с ними я так понимаю такая же беда (
    Да и с твоим примером тоже беда какая то ), я не могу понять как передать переменную и где использовать request scope а где session scope
    Сделал так
    Код (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:inputText id="StartDate" value="#{sessionScope.inputStartDate}">
    <xp:this.converter>
    <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
    <xp:dateTimeHelper></xp:dateTimeHelper>    
    </xp:inputText>
    <xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
    refreshMode="complete">
    <xp:this.action><![CDATA[#{java script:var doc = database.createDocument();
    doc.replaceItemValue("Form", "Date");
    doc.replaceItemValue("vDate", sessionScope.inputStartDate);
    doc.save();}]]></xp:this.action>
    </xp:eventHandler></xp:button></xp:view>
    Ошибка остается (
     
  4. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Можно обойтись и без sessionScope
    На SSJS пишу так, если компонент не привязан к полю
    Код (Javascript):
    getComponent("djDateTextBox1").value
    Если компонент привязан - то ничего не делаю, просто сохраняю :)
    Ну или если вдруг очень надо - то делаю так
    Код (Javascript):
    @Text( doc.getItemValueDateTime("DateStart"), "S0" )
    doc - это Data Source (документ в памяти)
     
  5. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Сделал так результат: Command Not Handled Exception
    Код (Text):
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:inputText id="StartDate">
    <xp:this.converter>
    <xp:convertDateTime type="date"></xp:convertDateTime>
    </xp:this.converter>
    <xp:dateTimeHelper></xp:dateTimeHelper>
    </xp:inputText>
    <xe:djButton label="Dojo Button" id="djButton1">
    <xp:eventHandler event="onBlur" submit="true"
    refreshMode="complete">
    <xe:this.action><![CDATA[#{java script:var doc = database.createDocument();
    doc.replaceItemValue("Form", "Date");
    doc.replaceItemValue("vDate", getComponent("StartDate").value);
    doc.save();}]]></xe:this.action>
    </xp:eventHandler></xe:djButton></xp:view>
     
  6. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    И будет тебе счастье
    Код (Javascript):
    doc.replaceItemValue("vDate", @Text( getComponent("StartDate").value ) );
     
  7. ty3uk

    ty3uk Well-Known Member

    Регистрация:
    31 мар 2008
    Сообщения:
    169
    Симпатии:
    0
    по дата/время, опятьже, в чём проблема? когда вставляешь поле (точнее дате-тайм пиккер), говоришь что работать будешь не только с датой (вставляй именно "date time picker" из основного набора), но и с временем (а там выбираешь на закладке Data самого поля, формат "Date and time" и выбираешь как его конреткно хочешь показывать)
    Код (Text):
        <xp:inputText id="inputText1">
    <xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
    <xp:this.converter>
    <xp:convertDateTime type="both"></xp:convertDateTime>
    </xp:this.converter>
    </xp:inputText>
    опять лезешь куда-то не туда, без объяснения проблем. Как одна из проблем может быть особенность того как показывается данное поле (иногда, в зависимости от версии сервера и закрученности солнечных пятен, может пропадать "пиккер", решается достаточно просто, в XSP свойствах базы, надо поменять, на первой закладке, "Application theme" на "oneuiv2.1" в большенстве случаев хватает). Далее идёт проблема что нормальных значений (или пустых), вставляется, всегда, текущее время, но это отдельная песня, и зависит о того какая у тебя версия клиента/сервера.
     
  8. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
     
  9. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    И еще вопрос все же что делать то с rich text, как с него добавить данные, ошибка та же ) ? И как он будет отображаться во вьюшке ) ? картинки, смайлики ?
     
  10. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    rich text во вью? Это изврат.
    И в чем проблема добавлять данные в rich text? Приводишь все к тексту и радуешься.
     
  11. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    А где он используется вообще ? в качестве форума ? Как вообще запись с него отобразить ? Может есть ссылка на примеры ?
     
  12. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Гуглим. И ищем на форуме. Тут есть ссылки на книги.
     
  13. ty3uk

    ty3uk Well-Known Member

    Регистрация:
    31 мар 2008
    Сообщения:
    169
    Симпатии:
    0
    Джонни, Джонни... Доминоха создана не для того чтоб сайты клепать. И если ты думаешь что РичТекст показывается в представлениях, для тебя будет новостью, что даже текст из ричтекста не показывается в представлениях! Как Ник заметил, показывание в представлениях РичТекста, это полный изврат (и возможен исключительно в Xpages-сах)...
    Вообще доминоха сделана только для форумов (в виду своего ричтекста и древовидной структуру ответов.. надо заметить когда доминоха создавалась, все форумы были древовидные). А точ то сейчас Доминоха используется как мощнейшая система для Документооборота, это так, случайность. На ней не сделать красивого календаря на год, не показать картинку во вьюхе. Жалость такая... А вот то что в РичТекстах,к примеру, храняться договоры, и соотвествующий лотусовый документ может гоняться по достаточно сложной схеме согласования (с всякой видимостью, редактироемостью, нотификациями и т.п.). Ой.. о чём это я... Старая система :lol:
    Запись из ричтекста, как не странно, показывается в ричтексте. Это не SQL тут не запросами работать надо (об этом я упоминал пару недель назад). Если нужно просмотреть документ, то заходишь в него и смотришь! Представление не более чем список документов!
     
  14. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Для понимая рекомендую базу с примерами, которая идет с компонентами ExtLib.
    В Xpages можно отображать РичТекст в видах... ну или почти в видах :lol: в общем на web немного другие подходы
     
  15. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Спасибо всем, сделаю пока на текстовых значениях, а может кто еще подсказать. Пытаюсь создать дочерний документ на xpages, не могу понять чего не правильно
    Код (Text):
    var formula:string = "ORG=\"" + "Рога и копыта" + "\"";
    var view:NotesView = database.search(formula);
    var dc:NotesDocument = view.getFirstDocument();
    var doc = database.createDocument();
    doc.replaceItemValue("Form", "People");
    doc.replaceItemValue("FIO", "Путин ВВ" )
    doc.makeResponse(dc);
    Мне нужно найти документ с организацией, и создать сотрудника как responce. В чем ошибка в роде по хелпам пособирал инфы ?

    Добавлено:
    Ахах, сори все разобрался переработал уже, забыл doc.save(); :lol:
     
  16. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Я тебе открою секрет - в большинстве своем в РичТекст поле только текстовые данные. Все остальное - интерпретация.
    По этому не понятна реплика "сделаю пока на текстовых значениях".
     
  17. ty3uk

    ty3uk Well-Known Member

    Регистрация:
    31 мар 2008
    Сообщения:
    169
    Симпатии:
    0
    Вот тут я не соглашусь... У меня во всех базах, RT обычно используется исключительно для аттачментов, а как известно, текста с аттачмента ноль по вдоль... :lol:
     
  18. NickProstoNick

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

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Я тебе открою еще один секрет - аттачей там тоже нет :) они в отдельном филде лежат.. а в РичТексте только ссылки :)
     
  19. ty3uk

    ty3uk Well-Known Member

    Регистрация:
    31 мар 2008
    Сообщения:
    169
    Симпатии:
    0
    вот ты мне говори об этом в тот момент, когда я сделал агента, который "висящие" аттачменты в $file (не привязанные к RT полям) распихивал по полям. Буквально сегодня. В документе два RT поля, одно поле, уже уволенный программер, в какой-то момент решил удалить, соотвественно, аттачменты "провисли" (где-то совсем недавно было про это, когда аттачменты висят в боттоме документа). Так вот, пришлось делать агента, которые смотрел аттачменты, пересматривал существующие RT поля, и перепривязывал "выпадающие" к одному из полей... Веселуха...

    :lol:
    вот сейчас, ещё одну базу (кстати, туже самую) перелапачивал... Уже, вроде, достиг нирваны... база с 1,3гб уменьшилась до 800мб, доков с 300т уменьшилось до 50т. Но, как оказывается, я не учёл какую-то осбенную подвязку от горе программера... Пришлось откатить (слава богу, я парень стрелянный). Завтра буду смотреть что за завязку я потерял...
    А всё началось с того, что человек два года программит в ЛОтусах (ещё на втором месяце я понимал вопрос об его увольнении, ибо он НЕ ПРОГРАММЕР!!!). В итоге, сейчас, в базе наблюдается около 250т. глистов (реально дубликаты, но они уже переиспользованны в новых документах), и надо от них вычищать, а еслиб человек, за два года програминга знал, что нельзя в вьюхе с ключём autorefresh=false искать вновь созданный документ, то небылоб столько глистов... Это помимотого что базу надо "отлечить", надо ещё лезть в его Джавовский код, где исправлять создание этих глистов + дополнительно исправлять переделки, которые он сам сделал в базе, а в агентах этого не учёл...
    Трындец... И это всё на боевых базах, когда там народ работает... жесть...
     
  20. JohnLemon

    JohnLemon Well-Known Member

    Регистрация:
    20 авг 2014
    Сообщения:
    274
    Симпатии:
    5
    Я про то что для меня есть понятие как поле с форматом данных Date как в моем примере, и мне непонятно почему в базу я должен писать его как текстовое а потом еще во вьюхе менять его на Date что бы календарь понимал данные, так как текстовые он не принимает :lamer:
     
Загрузка...

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