• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы JohnLemon
  • Дата начала
J

JohnLemon

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

ty3uk

чем не устраивает стандартный компонент?
Код:
<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>
есть какие-то проблемы?
 
J

JohnLemon

есть какие-то проблемы?
Да проблема в том что я хочу использовать еще djTimeTextBox (для того что бы пользователь выбирал еще время отдельно а не вбивал руками его), и inputRichText, а с ними я так понимаю такая же беда (
Да и с твоим примером тоже беда какая то ), я не могу понять как передать переменную и где использовать request scope а где session scope
Сделал так
Код:
<?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>
Ошибка остается (
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Можно обойтись и без sessionScope
На SSJS пишу так, если компонент не привязан к полю
JavaScript:
getComponent("djDateTextBox1").value
Если компонент привязан - то ничего не делаю, просто сохраняю :)
Ну или если вдруг очень надо - то делаю так
JavaScript:
@Text( doc.getItemValueDateTime("DateStart"), "S0" )
doc - это Data Source (документ в памяти)
 
J

JohnLemon

Можно обойтись и без sessionScope
На SSJS пишу так, если компонент не привязан к полю
JavaScript:
getComponent("djDateTextBox1").value
Сделал так результат: Command Not Handled Exception
Код:
<?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>
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
И будет тебе счастье
JavaScript:
doc.replaceItemValue("vDate", @Text( getComponent("StartDate").value ) );
 
T

ty3uk

по дата/время, опятьже, в чём проблема? когда вставляешь поле (точнее дате-тайм пиккер), говоришь что работать будешь не только с датой (вставляй именно "date time picker" из основного набора), но и с временем (а там выбираешь на закладке Data самого поля, формат "Date and time" и выбираешь как его конреткно хочешь показывать)
Код:
	<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" в большенстве случаев хватает). Далее идёт проблема что нормальных значений (или пустых), вставляется, всегда, текущее время, но это отдельная песня, и зависит о того какая у тебя версия клиента/сервера.
 
J

JohnLemon

Код:
	<xp:inputText id="inputText1">
<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
<xp:this.converter>
<xp:convertDateTime type="both"></xp:convertDateTime>
</xp:this.converter>
</xp:inputText>
Интересное решение, не знал что так можно, но через request scope тоже не пашет. Так со всеми компонентами работает:
Код:
doc.replaceItemValue("vDate", @Text( getComponent("StartDate").value ) );
Код:
вставляй именно "date time picker" из основного набора
Почему??, чем dojo компоненты уступают
 
J

JohnLemon

И еще вопрос все же что делать то с rich text, как с него добавить данные, ошибка та же ) ? И как он будет отображаться во вьюшке ) ? картинки, смайлики ?
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
И еще вопрос все же что делать то с rich text, как с него добавить данные, ошибка та же ) ? И как он будет отображаться во вьюшке ) ? картинки, смайлики ?
rich text во вью? Это изврат.
И в чем проблема добавлять данные в rich text? Приводишь все к тексту и радуешься.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Гуглим. И ищем на форуме. Тут есть ссылки на книги.
 
T

ty3uk

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Для понимая рекомендую базу с примерами, которая идет с компонентами ExtLib.
В Xpages можно отображать РичТекст в видах... ну или почти в видах :lol: в общем на web немного другие подходы
 
J

JohnLemon

Спасибо всем, сделаю пока на текстовых значениях, а может кто еще подсказать. Пытаюсь создать дочерний документ на xpages, не могу понять чего не правильно
Код:
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. В чем ошибка в роде по хелпам пособирал инфы ?

Добавлено:
Спасибо всем, сделаю пока на текстовых значениях, а может кто еще подсказать. Пытаюсь создать дочерний документ на xpages, не могу понять чего не правильно
Код:
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:
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Спасибо всем, сделаю пока на текстовых значениях, а может кто еще подсказать. Пытаюсь создать дочерний документ на xpages, не могу понять чего не правильно
Код:
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:
Я тебе открою секрет - в большинстве своем в РичТекст поле только текстовые данные. Все остальное - интерпретация.
По этому не понятна реплика "сделаю пока на текстовых значениях".
 
T

ty3uk

Я тебе открою секрет - в большинстве своем в РичТекст поле только текстовые данные. Все остальное - интерпретация.
По этому не понятна реплика "сделаю пока на текстовых значениях".
Вот тут я не соглашусь... У меня во всех базах, RT обычно используется исключительно для аттачментов, а как известно, текста с аттачмента ноль по вдоль... :lol:
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Вот тут я не соглашусь... У меня во всех базах, RT обычно используется исключительно для аттачментов, а как известно, текста с аттачмента ноль по вдоль... :lol:
Я тебе открою еще один секрет - аттачей там тоже нет :) они в отдельном филде лежат.. а в РичТексте только ссылки :)
 
T

ty3uk

Я тебе открою еще один секрет - аттачей там тоже нет smile.gif они в отдельном филде лежат.. а в РичТексте только ссылки smile.gif
вот ты мне говори об этом в тот момент, когда я сделал агента, который "висящие" аттачменты в $file (не привязанные к RT полям) распихивал по полям. Буквально сегодня. В документе два RT поля, одно поле, уже уволенный программер, в какой-то момент решил удалить, соотвественно, аттачменты "провисли" (где-то совсем недавно было про это, когда аттачменты висят в боттоме документа). Так вот, пришлось делать агента, которые смотрел аттачменты, пересматривал существующие RT поля, и перепривязывал "выпадающие" к одному из полей... Веселуха...

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

JohnLemon

По этому не понятна реплика "сделаю пока на текстовых значениях".
Я про то что для меня есть понятие как поле с форматом данных Date как в моем примере, и мне непонятно почему в базу я должен писать его как текстовое а потом еще во вьюхе менять его на Date что бы календарь понимал данные, так как текстовые он не принимает :lamer:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!