ОБСУЖДЕНИЕ

RT файлы FP7

27 ответов 8,8 тыс.
AI-выжимка обсуждения скоро
после ФП7 аттачи стали отображаться под чертой...
upload_2016-11-22_14-2-20.png
 
код
Код:
    Dim rtitem As NotesRichTextItem
    Set rtitem = RemoveAttachments(doc, "body")
    Call doc.Save(True,False,True)'установить прочитанным
   
    '   fname=Replace(fname,{\},{/})
    fname=Replace(fname,{/},{\})'Windows specific
    If ( rtitem.Type = RICHTEXT ) Then
        Call rtitem.EmbedObject( EMBED_ATTACHMENT,{} , fname, fnam(0))
        Call doc.Save(True, False)
        If worddoc Is Nothing Then
            Dim res, run As String
            'run={cmd.exe /C start "} &fname &{"}
            run={cmd.exe /C ""} &fname &{""}
            Print {Shell calling...}, run
            res=Shell(run, 6)
        End If
    End If
удалени аттачей
Код:
Function RemoveAttachments(objdoc As NotesDocument, fld As String) As NotesRichTextItem
    Dim rtItem As NotesRichTextItem
    Dim docItem As NotesItem
   
    On Error GoTo errorhandler
    Set docItem=objdoc.GetFirstItem(fld)
    If Not docItem Is Nothing Then
        DbgMsg("RichText:" & CStr(docItem.Type = RICHTEXT))
        If docItem.Type=RICHTEXT Then
            Set rtItem=docItem
        End If
    End If
    If objdoc.Hasembedded Then 
        If ( Not rtItem Is Nothing ) Then
            If (Not IsEmpty(rtitem.EmbeddedObjects))Then
                ForAll o In rtitem.EmbeddedObjects
                    Call o.Remove
                    DbgMsg("RT field: remove attachments")
                End ForAll
            End If
        Else
            If ( Not IsEmpty(objdoc.EmbeddedObjects)) Then
                ForAll o In objdoc.EmbeddedObjects
                    Call o.Remove
                    DbgMsg("remove attachments")
                End ForAll
            End If
        End If
    End If
   
    Do While Not objdoc.GetFirstItem("$FILE") Is Nothing
        objdoc.RemoveItem("$FILE")
        DbgMsg("remove fields: $FILE")
    Loop
   
    If (rtItem Is Nothing) Then
        Do While Not objdoc.GetFirstItem(fld) Is Nothing
            objdoc.RemoveItem(fld)
            DbgMsg("Remove non RT fields:" & fld)
        Loop
        Set rtItem=objdoc.CreateRichTextItem(fld)
        Call objdoc.Save(True,False)
    End If
    Set RemoveAttachments=rtItem
ExitFunction:
    Exit Function
errorhandler:
    Call RaiseError()
    Resume ExitFunction
End Function
 
@garrick ну это его результат, когда аттачи через интерактив - такого нет
просто я думал че-то можно подкрутить (м.б. удалять поле вовсе)
 
Последнее редактирование:
как я понял - так отображается, и мне кажется - зареганные типы в ОС
 
@lmike,
Я чет не понял, этот код для демонстрации баго-фичи и ее лечения?
Код "удалени аттачей" для чего?
 
и еще - я даже не знаю как гугл спросить, про такой факап
 
По большому счету, не все ли равно как оно отображается, программно к аттачу достучаться же можно. У меня на практике такое часто выходило, я просто забил на это, отображаю иконку аттача "по-своему"
 
кстати, у меня такое выходило, когда я программно аттачил в текущий открытый док
 
я давеча тоже натолкнулся на такую траблу.
костыль: в форме, в первой строке добавил header и высоту ему сделал 0.
уродско и не всегда применимо, ну а что делать...
 
кстати, у меня такое выходило, когда я программно аттачил в текущий открытый док
неа, теперь уже даже просто в background.
или это бага, которую исправят или нужно курить... уж и не знаю чего я только не курил с этими индусами.
 
нашел разницу в ДХЛ
и она... в поле $FILE, но в нотусевой сучности я не знаю где копать, а ДХЛ
XML:
<item name="$FILE" summary="true" sign="true" seal="true">
- <object>
- <file hosttype="msdos" compression="none" flags="sign storedindoc" encoding="none" name="Договорзайма.doc" size="45545">
с flags! будет "нормально" загружен, а такой
XML:
- <item name="$FILE" summary="true" sign="true" seal="true">
- <object>
- <file hosttype="msdos" compression="none" encoding="none" name="Договорзайма.doc" size="45545">
в индусском стиле
то - достаточно flags='storedindoc' (атрибут) добавить в тег (<file...), для "правильного" резалта
 
Последнее редактирование:
хм.. странно.. у мну fp7 давно стоит.. таких артефактов не наблюдал..
а ODS какой у Ваших баз?