Узнать Имя Shared Images

Cleric-Lviv

Well-Known Member
Lotus team
03.01.2008
600
0
#1
Всем привет.

Имеем, форма. на форме поле рич-текст-лайт с указаным параметром Shared Images. Выбираем картинку - файл, и она устанавливается как картинка а не как файл.
В связи с етим мы не можем юзать @AttachmentNames.

Вопрос: Как можно узнать имя картинки?
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#2
Думаю стандартными свойствами нет...
На картинке видно, что имя прописано во внутренней структуре RichTextLite.
Через CAPI достучаться возможно.
В dxl выгружать не пробовал, может через него можно.
 

Вложения

  • 63.3 КБ Просмотры: 54

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#4
А вот кстати он поможет:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_8_5_3.dtd'>
<document xmlns='http://www.lotus.com/dxl' version='8.5' maintenanceversion='3.0'
replicaid='44257A620026FDA7' form='Categ'>
<noteinfo noteid='92a' unid='59B66CD880DECBE944257BA3004C7BF8' sequence='4'>
<created><datetime>20130709T175524,72+04</datetime></created>
<modified><datetime>20130709T175531,32+04</datetime></modified>
<revised><datetime>20130709T175531,31+04</datetime></revised>
<lastaccessed><datetime>20130709T175531,32+04</datetime></lastaccessed>
<addedtofile><datetime>20130709T175530,20+04</datetime></addedtofile></noteinfo>
<updatedby><name></name></updatedby>
<revisions><datetime>20130709T175530,19+04</datetime><datetime>20130709T175530,94+04</datetime><datetime
>20130709T175531,14+04</datetime></revisions>
<item name='testRTL'><richtext>
<pardef id='1'/>
<par def='1'><picture width='14px' height='14px'><imageref name='Edit_yellow.jpg'/></picture></par></richtext></item>
<item name='$EncryptionStatus'><textlist><text>0</text></textlist></item>
<item name='$SignatureStatus'><textlist><text>0</text></textlist></item>
<item name='Category'><textlist><text>sdf</text></textlist></item>
<item name='SubCategory'><textlist><text/></textlist></item>
<item name='NameDoc'><textlist><text/></textlist></item></document>
Агент простенький, для выгрузки:

Код:
Option Public
Option Declare

Dim nline As string
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim desSession As New notessession
Dim desDoc As NotesDocument
Dim dxlExp As NotesDXLExporter
Dim streamDxl As NotesStream
Dim filepth As String
Dim note As String

Set dxlExp = desSession.Createdxlexporter()
Set streamDxl = desSession.Createstream()
Set desDoc = ws.Currentdocument.Document
filepth = "c:\temp\1.xml" 

Call WriteLog("first",filepth)
If streamDxl.Open(filepth) Then
Call streamDxl.Truncate()
Call dxlExp.Setinput(desDoc)
Call dxlExp.Setoutput(streamDxl)
Call dxlExp.Process()
Call streamDxl.Close()
End If
End Sub

Sub WriteLog (strLog As String, logFileName As String )
On Error GoTo handler
Const FuncName = {Sub "WriteLog" }
Dim errStr As String

Dim fileName As String
Dim fileNum As Integer
fileNum% = FreeFile()
fileName$ = logFileName
Open FileName$ For Append As fileNum%
Write #fileNum% , strLog
Close fileNum%

GoTo endh
handler:
errStr = FuncName & {стр. } & Erl & nLine & Error$		
Error Err,ErrStr
endh:
End Sub
 

Cleric-Lviv

Well-Known Member
Lotus team
03.01.2008
600
0
#5
savl

Огромное спасибо! dxl + xml парсер = решение проблем :rolleyes:
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#6
шож вы делаете-то :rolleyes: - "сказал А - говори Б"
кто мешал приляпать XSLT сразу, кот. и выдаст имя из атрибута?
а вы тут замутили файло (х-з где) да потом еще и парсить...

Добавлено: и да... проще (в данном случае) ваще сделать SAX
 

savl

Well-Known Member
Lotus team
28.10.2011
2 126
163
#7
lmike
да я сам с xml не очень, использую как пойдет. XSLT все никак не научусь применять :(
Sax конечно лучше, но готовый код был только такой.