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

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

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

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

2 Rtf

  • Автор темы wowa
  • Дата начала
W

wowa

ВСЕ ДЕЛАЕТСЯ ПОД WEB
Есть форма, На форме 2 кнопки, 2 RTF

Нажимаю первую кнопку№1, с помощью кода заношу в RTF "<b>www</b>", в ВЕБ получается www

Все хорошо , как надо

Теперь нажимаю вторую кнопку№2, с помощью кода заношу в RTF "<b>qqq</b>", в ВЕБ получается qqq
Но исчезает www...
И наоборот, нажимаю №1 исчезает RTF№2

Почему так происходит???
Если сделать RTF Editable, то там и там есть то что раньше заносил... Как исправить данную ситуацию?
 
G

Guest

Покажи код..Скорее всего ты просто берешь не текущий RTF, а создаешь новый через New..Или я ошибаюсь ?

ааа, нет, не в этом дело, я проглядел про 2 RTF

Но код все равно кинь
 
W

wowa

Программер, Для простоты
Есть 2 кнопки и 2 RTF
Каждая кнопка вызывает агент чтобы заполнить соответствующее поле
Код:
@Command([ToolsRunMacro];"(agent_name1)")
В агенте код из хелпа:
Код:
Dim s 				As New NotesSession
Dim db 				As NotesDatabase
Dim doc 			As NotesDocument
Dim richStyle 	As NotesRichTextStyle

Set db = s.CurrentDatabase
Set doc = s.DocumentContext
Dim richText 		As New NotesRichTextItem(doc, "name_RTF1")
Set richStyle = s.CreateRichTextStyle
richStyle.PassThruHTML = True
Call richText.AppendStyle( richStyle )

Call richText.AppendText( |<b>www</b>| )

И еще вопросик...
Как скопировать значение из RTF_1 d RTF_2 ????

На скрипте
 
G

Guest

Так ведь вы переписываете один и тот же RTF, то есть "name_RTF1", чего же вы ожидали ? Разумеется старое значе7ие не сохранится, поскольку вы каждый раз инициализируете новый RTF...Чтобы добавить в него значение, нужно прежде всего взять существующий RTF через doc.GetFirstItem....А скопировать из одного ричтекста в другой можно так: string$=RTF1.Values....Call RTF2.AppendText(string$)
 
W

wowa

Программер, Мне и не надо чтобы сохранялось старое.. Вопрос задан совсем в другом
Например, я хочу переписать RTF_1... Почему Computed PTF_2 исчезает??? Хоть и Editable RTF_2 заполнен

string$=RTF1.Values....Call RTF2.AppendText(string$)
Не получается сохранить код
 
S

Sandr

А что мешает это сделать JavaScriptom?
ЗЫ: Computed PTF_2 исчезает, потому что это не поле для ВЕБа.. посмотрите сорс странички и Вы сами убедитесь...
Ечли хотите писать значения агентом, то пишите их не в РТ поля, а РТ поля вычесляйте из тех, в которые пишите...
 
G

Guest

Программер, Мне и не надо чтобы сохранялось старое.. Вопрос задан совсем в другом
Например, я хочу переписать RTF_1... Почему Computed PTF_2 исчезает??? Хоть и Editable RTF_2 заполнен


Не получается сохранить код
Values - это массив, бери Values(0)

Ааа, нет, я гоню, Values - это один стринг
 
W

wowa

Программер , у меня в полях чисто html код
 
S

Sandr

Обрамляете Ваше РТ поле в Div, даете диву ID.
JavaScriptom обращайте сь к нему как

Код:
document.getElementById(ваш ай).innerHTML = "<b>www</b>"

Если агентом, то так (переделываю Ваш код)

Код:
	Dim s				 As New NotesSession
Dim db				 As NotesDatabase
Dim doc			 As NotesDocument


Set db = s.CurrentDatabase
Set doc = s.DocumentContext

Call doc.ReplaceItemValue(field1, "<b>www</b>" )

свое РТ поле вычисляйте из field1
поле желательно что бы было на форме, сделайте его нескрытым CFDшным и поместите его в div style="display:none"
 
G

Guest

Программер , у меня в полях чисто html код

Какая разница, как выглядит текст ? html-код занесен в RTF как обычный стринг это для браузера он html, а для Notes plain text и его можно взять через RTI.Values...А что , не получается ?
 
S

Sandr

wowa

А что у Вас при этом в том поле, куда Вы писали значение?

ЗЫ: в CFD поле в значение по умолчанию поставте его же.
 
W

wowa

Sandr, какой-то у меня все равно бред получается...
Вот смотри:
Сделал 2 кнопки, первая вызывает агент_1, вторая агент_2
В агенте_1:
Код:
Dim s				 As New NotesSession
Dim db				 As NotesDatabase
Dim doc			 As NotesDocument


Set db = s.CurrentDatabase
Set doc = s.DocumentContext

Call doc.ReplaceItemValue("field1", "<b>www</b>" )
В агенте_2 , Call doc.ReplaceItemValue("field2", "<b>eee</b>" )


Создал 2 поля Computed for display: field_1 и field_2, прописал в каждом их же name
Создал 2 RTF Computed, в RTF_1 прописал field_1, в RTF_2 прописал field_2

Нажимаю кнопку_1 ... Итог, в field_1 : www, в field2, RTF_2, RTF_1 - пусто
Нажимаю кнопку_2 ... Итог, в field_2 : eee, в field1, RTF_2, RTF_1 - пусто


КАк видно RTF не заполняются, field1 и field2 видны "поочереди"


и вообще что-то не помогает display:none
 
S

Sandr

галка "генерировать ХТМЛ для всех полей" на форме включена?
ЗЫ: попробуйте вместо CFD редактируемые поля... но дложно и с CFD работать.
ЗЫЗЫ: Что значит "не помогает display:none" ? где используете его?
 
W

wowa

галка "генерировать ХТМЛ для всех полей" на форме включена?
Sandr , включена

ЗЫ: попробуйте вместо CFD редактируемые поля... но дложно и с CFD работать.
Пробывал


ЗЫЗЫ: Что значит "не помогает display:none" ? где используете его?
Последня закладка поля в style "display:none"
...
Почему-то в RTF ничего не заносится
 
S

Sandr

wowa
Много раз делал такое - все работало.
style "display:none" лучше использовать в div-ах, а не на последней закладке поля.
ЗЫ: А че Вы к этим РТ полям прицепились? Почему не использовать computet value ? Или Вам хранить єти значения надо? Так их хранить можно и в обычгых полях... Если Вы это делаете из-за PassThruHTML, то используйте computet value , помеченный как HTML на форме...
 
W

wowa

Код:
	Dim richText 		As NotesRichTextItem
Set	richText = doc.GetFirstItem("LEA_SD_RatingNav_RT")
Код дало сохранить, но во время исполнения на второй строчке ошибка Type mismatch...
Что тут может быть?
В отдельной тестовой форме все работает, переношу на нормальную - ошибка !
 
S

Sandr

Код:
Dim richText		 As NotesRichTextItem
Set	richText = doc.GetFirstItem("LEA_SD_RatingNav_RT")
if richText is nothing then
set richText = doc.CreateRichTextItem("LEA_SD_RatingNav_RT")
end if

Хотя, он бы по-другому ругался.. ошибка не там, чкорее всего...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Код:
	Dim richText 		As NotesRichTextItem
Set	richText = doc.GetFirstItem("LEA_SD_RatingNav_RT")
Код дало сохранить, но во время исполнения на второй строчке ошибка Type mismatch...
Что тут может быть?
В отдельной тестовой форме все работает, переношу на нормальную - ошибка !
Значит поле LEA_SD_RatingNav_RT не ричтекстовое.

Поэтому рекомендуется использовать тип Variant. Короче, пример из хелпа:
Код:
Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "ProjectDescription" )
If rtitem.Type = RICHTEXT Then
Call rtitem.AddNewLine( 1 )
Call rtitem.AppendText _
( "Book is 64 pages, full color." )
End If
Call doc.Save( False, True )
 
Мы в соцсетях:

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