Отображение содержимого RichText поля

B

beloff

Компадрес! Есть проблема. В форме документа есть ричтекстовое поле, туда суется фотография работника инлайновая. Что-то происходит и это фото в некоторых документах перестает отображаться. При этом в поле данные есть, valuelenth пишет что все окай. Есть идеи как это победить? Или вот подумал как вариант - сохранять аттач в документе, а каким нибудь макаром отображать аттач инлайн картинкой. Есть допприблуда, которая вытягивает фотки на портал в base64, там никаких проблем нет, все супер, т.е. проблема именно в рендере лотусной формы.
 
сделай экспорт в DXML до и после того как картинка коцается, так и найдешь причину
 
так фиг найдешь когда это все коцается
 
я просто к чему - может есть способ отображать фотку в виде base64 (например в какое нибудь поле я пишу данные фото, потом рендерю из этой записи)
 
Конечно есть) - перекодируй обратным назадом в жэпегу какуюнить и покажи штатно)......

Если ты уверен, что фотоинфа не коцаная - пересоздай док с подменой юнида нового дока из старого и не парься. В девятке, я заметил, бывают случаи "порчи" структуры дока, при этом все данные в айтемах в норме. При этом всяческие "восстановления" базы штатные ничего не дают(
Вот такая фигня)
Если придумаешь, как увидеть гемор кодом - можешь сделать авторепейр.
 
Конечно есть) - перекодируй обратным назадом в жэпегу какуюнить и покажи штатно)......

Если ты уверен, что фотоинфа не коцаная - пересоздай док с подменой юнида нового дока из старого и не парься. В девятке, я заметил, бывают случаи "порчи" структуры дока, при этом все данные в айтемах в норме. При этом всяческие "восстановления" базы штатные ничего не дают(
Вот такая фигня)
Если придумаешь, как увидеть гемор кодом - можешь сделать авторепейр.
не, у меня идея такая: создать субформу, рендерить через ХТМЛ. Делаю, вставляю img src="data:image/jpeg;base64,/9......." и оно не рендерится. Не могу понять почему. В принципе думал реализовать следующий процесс:
1. Добавление фото
2 Автоматическая конвертация его в base64, запись в поле в документ
3 Рендер из этого поля фотки

чтобы все автоматом делалось
 
@beloff:
-Сразу не показывается или потом пропадает?
-Импорт делает код или пользователь?
-Что за версии lotus notes/domino?
 
@beloff:
-Сразу не показывается или потом пропадает?
-Импорт делает код или пользователь?
-Что за версии lotus notes/domino?
1. сразу все есть, потом по непонятным причинам перестает отображаться на форме
2. не понял. Стандартно юзер просто инлайн вставляет картинку в ричтекстовое поле. Рандомно потом картинка перестает показываться, данные в поле остаются
3. 9.01 была, сейчас 10 локально у меня, на серваке 9,01
 
Пришли форму и сам док, посмотрим (в пустой базе, штоп не мудрить)
 
вопщем, чо видно:
1)
Field Name: Photograph
Data Type: Rich Text
Data Length:
13726 bytes
Seq Num: 1
Dup Item ID: 3
Field Flags: PROTECTED

----------------------
Dup Item ID: 3 (!!!) - и, сопсна, всё, вот и не рендерится ничего - нет первых двух кусков ID: 1 и ID: 2
2)
в item PhotographForBadge есть фотка, можно её показать
в item PhotographNew тоже есть фотка, размером побольше, вангую она и есть потерянная в Photograph - обрати внимание на длину третьего куска. Или PhotographNew - твои эксперименты?

Field Name: PhotographNew
Data Type: Rich Text
Data Length:
13726 bytes
Seq Num: 1
Dup Item ID: 3
Field Flags:

можешь просто переписать из PhotographNew в Photograph и всё будет гуд)
3)
в доке ~430 айтемов из них ~250 с инфой...
Это нормально?
может гдета, при коррекции инфы в доке, выходите за пределы лимитов нотуса? (как версия)
одно могу сказать: инфа коцается при редактировании дока агентом - точно на 146%)
=======================
ЗЫ удобно аттачи и фотки хранить в респонзе - гарантированно не покоцаются
если размер фоток ограничить 32к, то их можно будет показывать в главном доке без всяких мудростей простой собакой @getdocfield
 
Последнее редактирование:
Dup Item ID: 3 (!!!) - и, сопсна, всё, вот и не рендерится ничего - нет первых двух кусков ID: 1 и ID: 2
не догнал что это, изначально 1 фотка 1 поле без никаких Dup Item
в item PhotographNew тоже есть фотка, размером побольше, вангую она и есть потерянная в Photograph
это не она, до меня приклеили типа костыль на постопен - копировать из банка данных сюда запасную фотку, если пропала из фотографа просто копипаст сделать и все.
можешь просто переписать из PhotographNew в Photograph и всё будет гуд)
так пока так и делается ручным способом, хочется автоматизировать. Почему то PhotographNew фоты не коцаются.
 
не догнал что это, изначально 1 фотка 1 поле без никаких Dup Item
если содержимое РТ поля больше 32к, оно хранится в доке несколькими кусками, их называют Dup Item и нотус их адресуе по ID
доступа к Dup Item по ID нотус не даёт(
поэтому я и говорю, что если есть возможность использовать фотки до 32к (а этого больше, чем достаточно по качеству), то так и надо делать - тогда будет возможность оперировать РТ полями (с уже отрендериным содержимым, естественно) @ формулами, как с простыми текстовыми (им даже тип RTFied не обязательно назначать)
А по поводу автоматизации "костыля" всё просто:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Dim doc As NotesDocument
Set doc = Source.Document
Dim rti1 As NotesRichTextItem
Dim rti2 As NotesRichTextItem
Set rti1 = New NotesRichTextItem( doc, "Photograph" )
Set rti2 = doc.GetFirstItem( "PhotographNew" )
Call rti1.AppendRTItem( rti2)
End Sub
** именно на Query!!!
поле Photograph даж сохранять не нужно
 
  • Нравится
Реакции: beloff
оно примерно так и реализовано только в другое поле. А фотку сохранять нужно, т.к. она в веб тянется из этого поля. Спасибо за все.
так что мешает и вебе брать из PhotographNew или ващще из базы фоток?? нипанятна
если уже есть место хранения фоток, им и пользоваться, как источником данных
 
так что мешает и вебе брать из PhotographNew или ващще из базы фоток?? нипанятна
если уже есть место хранения фоток, им и пользоваться, как источником данных
так вебе нету никаких проблем, оно тянет и тянет, даже когда фото не рендерится в вебе оно отображаетцо
 
так вебе нету никаких проблем, оно тянет и тянет, даже когда фото не рендерится в вебе оно отображаетцо
значь, в вебе показывается НЕ отрендеренное Photograph, а как то иначе (в твоём проблемном доке, ДО пересохранения, только часть нужной инфы, после пересозранения - нотус просто убирает из поля то, что раньше было картинкой)
чудес не бывает
у вас где то в коде изменения Photograph применены не свойственные RTitem механизмы - нотус ругаться не будет, а просто изменит айтем в соответствии с применяемыми методами. вот так инфа и чикается.
напр. doc.Photograph = `нечто, вроде бы картинка` похерит имедж в айтеме
------------
поэтому и говорю что, если есть место хранения картинок (и это не карточка юзера) показывать оттуда и не множить инфу и возможные ошибки - в вебе тягать по урл, а в клиенте - как я написал (или ещё можно "копиайтем" - сработает аналогично) в квериопен и БЕЗ сохранения айтема
 
Последнее редактирование:
О сложном все почитал). Если на вебе все окей, может какие шаловливые рученки просто указали в RT скрывать это от Notes галкой?

Не совсем по теме, но, вообще, практика показывать на вебе имеджи из РТ поля дурная. Ну если их там немного и создал док и забыл. Если добавлять в него, изменять, то линки на прежние имеджи легко едут и Яхи и Гуглы их теряют. Если кто залинковал - то теряется тоже. Респонсы советовали, да. Подформы - это вообще наше все. Никогда не скрывайте в дизайне РТ поля от веба галкой-формулой — глючить будет страшно! Скрывайте только подформу с РТ полем. Имхо, где-то в подходе к дизайну проблем.
 
Мы в соцсетях:

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