yvymt01
1

Notesrichtextitem

26.05.2009, 16:30. Показов 47077. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По ходу знакомства с Лотусом возникла одна сложная проблема.
Такая проблема: как отобразить в документе поле NotesRichTextItem созданное с помощью метода new или createrichtextitem?
(В свойствах документа это поле есть.)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2009, 16:30
Ответы с готовыми решениями:

Notesrichtextitem и Link
Всем привет! Есть поле NotesRichTextItem в нем ссылка на документ из другой базы. Пытаюсь её...

Помогите с Notesrichtextitem
Уважаемые помогите разобраться в чем проблема: Вопрос вот в чем, на форме есть поле...

Изменения Notesrichtextitem
Вопрос много пережевывался, но... Есть ли вариант реализации след. штуки: Документ открывается...

Поле NotesRichTextItem и SaveOptions
На форме есть поле типа NotesRichTextItem , в которое по таймеру добавляю вложение. Никаких...

35
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.05.2009, 16:33 2
на форме отображаются те поля, которые дизайнер в дизайнере влепил как поле.
кодом можно добавить итемы не зависимо от того, что на форме отображается...
если на форме есть поле, имя которого совпадает с именем итема в документе, то значение этого итема отобразится в таком поле, при открытии документа...

вывод - нужно добавить на форму RT-поле
0
yvymt01
26.05.2009, 16:46 3
Цитата Сообщение от Akupaka
вывод - нужно добавить на форму RT-поле
да, так работает в документах, где уже создано поле, но возникает следующая проблема. При создании нового документа с добавленным на форму RT - полем и использовании метода createrichtextitem для создания итема с таким же именем, это поле остается пустым несмотря ни на какие изменения с richtextitem.
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.05.2009, 17:01 4
ой... я не выдержу снова это объяснять ;)
мужики, помогайте!..

дело в том, что работать с richtext на уи и бэкэнде параллельно нельзя прямо - нужно через зад...
поэтому конкретный совет можно сделать только, если будет поставлена конкретно задача.
пока могу лишь посоветовать поискать по форуму по работе с richtext...
тут рядом есть ветка, если умеешь абстрагироваться от задачи, то должен понять суть... :blink:
0
yvymt01
26.05.2009, 17:10 5
Цитата Сообщение от Akupaka
поэтому конкретный совет можно сделать только, если будет поставлена конкретно задача.
задача очень проста.
есть форма с одним полем типа Rich Text, имя поля "F1", есть action со следующим кодом
[codebox]Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim curdoc As NotesDocument
Dim rtitem As Variant
Set uidoc = ws.CurrentDocument
Set curdoc = uidoc.Document

Set rtitem = curdoc.CreateRichTextItem("F1")
Call rtitem.AppendText( "ABC" )
Call curdoc.Save( False, True )
End Sub[/codebox]
Нужно, чтобы после нажатия кнопки содержимое отображалось в поле.
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
26.05.2009, 17:12 6
В данной задаче можно начать с uidoca, а не с background документа.
А именно

Код
Call UIDocFieldSetText("F1", "ABC")
0
yvymt01
26.05.2009, 17:14 7
Цитата Сообщение от Omh
В данной задаче можно начать с uidoca, а не с background документа.
а если вместо текста embeddedobject?
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
26.05.2009, 17:17 8
Ну тогда откупорить гуголь и почитать, как переоткрыть документ, что такое SaveOptions = "0" и почему richtext не появляется сразу.
На самом деле, это уже пержёвано пицот раз, не то что до состояния кашицы, а уже на атомы разобрано ;)
И на этом форуме и на -надцати других.

Если о сути, то надо переоткрыть ui документ после апдейта ричтекста.
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.05.2009, 17:19 9
короче гря, смотри код, анализируй, испытывай ;)



тот самый финт, о котором там грится - переоткрытие УИ-документа после изменения richtextа, чтобы отобразить эти изменения... (через зад)
просто, это на столько пережеванная тема... и каждый новичек стремиться задать похожий вопрос :blink:
0
yvymt01
26.05.2009, 17:27 10
Цитата Сообщение от Omh
Ну тогда откупорить гуголь и почитать, как переоткрыть документ, что такое SaveOptions = "0" и почему richtext не появляется сразу.
что то типо этого? ;)
[codebox]Dim wksp As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesUIDocument, uidocNew As NotesUIDocument
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim strFieldname As String

Set uidoc = wksp.CurrentDocument
uidoc.Refresh True do thys if the rich text field is editable, to get the current contents in case user has modified them.
Set doc = uidoc.Document get the back-end document for the document open on screen.
strFieldname = uidoc.CurrentField remember the current field if any
Set rti = doc.GetFirstItem("BodyZ") insert your fieldname here, generally "Body"

Make your rich text changes here, for instance:
Call rti.AddNewLine(1, True)
Call rti.AppendText(Now & ": log entry.")
If session.NotesBuildVersion >= 190 Then
rti.Update ND6 only
Else
Call doc.ComputeWithForm(True, False) caution, as thys may erase some field values if you have @Db functions in formulas.
End If

doc.SaveOptions = "0" make it possible to close the document without a "do you want to save" prompt. If thys is a mail-in doc you may need to set MailOptions="0" also to avoid being prompted.
Call uidoc.Close(True)
Set uidocNew = wksp.EditDocument(True, doc, , , , True)
Delete uidoc
uidocNew.Document.RemoveItem("SaveOptions")
If strFieldname <> "" Then uidocNew.GotoField(strFieldname) return focus to field that was current before.[/codebox]
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
26.05.2009, 17:43 11
что то типа

Код
Set rtitem = curdoc.CreateRichTextItem("F1")
Call rtitem.AppendText( "ABC" )
Call curdoc.Save( False, True )
Call curDoc.ReplaceItemValue("SaveOptions", "0")
Call uidoc.Close
Dim TmpDoc as NotesDocument
Set TpmDoc = db.getDocumentByUNID(curdoc.UniversalID)
Call ws.EditDocument(False, TmpDoc)
Код черновой, просто для иллюстрации
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.05.2009, 17:46 12
Event01, вот скажи честно, впадло разобрать тот код, что я тебе посоветовал? ;)
ведь он простой до ужаса!
0
yvymt01
26.05.2009, 17:51 13
Цитата Сообщение от Omh
что то типа

Set rtitem = curdoc.CreateRichTextItem("F1")
Call rtitem.AppendText( "ABC" )
Call curdoc.Save( False, True )
Call curDoc.ReplaceItemValue("SaveOptions", "0")
Call uidoc.Close
Dim TmpDoc as NotesDocument
Set TpmDoc = db.getDocumentByUNID(curdoc.UniversalID)
Call ws.EditDocument(False, TmpDoc)

Код черновой, просто для иллюстрации
спасибо,теперь все работает ;)



Цитата Сообщение от Akupaka
Event01, вот скажи честно, впадло разобрать тот код, что я тебе посоветовал? smile.gif
ведь он простой до ужаса!
да сначала ты мне дал ветку анализировать.... я посмотрел ее со стороны.... подумал... и решил поискать в гугле :blink:
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.05.2009, 17:58 14
в той ветке человечек так же учится как и ты, только задача немного иная, хотя лечится тем же способом...
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
26.05.2009, 18:20 15
Цитата Сообщение от Event01
Цитата(Akupaka @ 27:05:2009 - 13:33)
Event01, вот скажи честно, впадло разобрать тот код, что я тебе посоветовал? smile.gif
ведь он простой до ужаса!

да сначала ты мне дал ветку анализировать.... я посмотрел ее со стороны.... подумал... и решил поискать в гугле
по крайней мере и то хорошо, что сам нашел и всё работает
если в другой раз понадобится, может, руки дойдут, и в простом "до ужаса" разберется ;)
0
yvymt01
26.05.2009, 20:02 16
а можно ли как нибудь открыть attachment файл, используя LotusScript?
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
26.05.2009, 20:20 17
Есть вариант выгрузить аттач себе на диск (см хелп ExtractFile) и открыть с диска.
Как и где открыть, уже зависит от типа файла, операционки и т.п.
0
yvymt01
29.05.2009, 19:17 18
еще два вопроса возникли.
1. Как можно обновить actions чтобы hide formula перевычислилась?
2. как можно программно скрывать/отображать actions, не используя hide formula?
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
29.05.2009, 23:11 19
Цитата Сообщение от Event01
еще два вопроса возникли.
1. Как можно обновить actions чтобы hide formula перевычислилась?
2. как можно программно скрывать/отображать actions, не используя hide formula?
1. RefreshHideFormulas например.
2. Вроде бы никак.
0
yvymt01
30.05.2009, 18:16 20
Цитата Сообщение от K-Fire
1. RefreshHideFormulas например.
2. Вроде бы никак.
спасибо. еще один вопрос возник - по полям Readers Authors.
Можно ли сделать, чтобы поле readers указывало бы только на возможность открытия документа, а не на отображение его в представлении?
30.05.2009, 18:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2009, 18:16
Помогаю со студенческими работами здесь

Notesrichtextitem и Ссылки в нем
Всем привет! Есть поле NotesRichTextItem, в нем находится ссылка на документ в другой базе, но...

Убрать Рамку У Ссылки Notesrichtextitem
Call rtLinks.Appenddoclink(proj, &quot;&quot;, tempname) Подскажите пожалуйста, как убрать рамку у подобных...

Баг Метода Embedobject Класса Notesrichtextitem
Давно уже мучает следующая проблема. У класса NotesRichTextItem есть метод EmbedObject, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru