mh | Field Flags: SIGN SEAL |
| RTF pole mi vždy při dalším uložení vytvoří druhé pole se stejným názvem. V PostSave do něj přidávám text. První má pak Field Flags prázdné a druhé má výše uvedené a obsahuje přidaný text. Podobnou konstrukci mám v jiné aplikaci a tam nic takového nevzniká. Díky za radu. |
VZ | Je povoleno šifrování/podpis v RTF poli? |
19.01.2018 15:35:38
ID: 3693.1
| Jak je nastaveno zabezpečení ve vlastnostech toho RTF pole? Je ve vlastnostech pole na 3. záložce (Advanced) dole v "Security Options" vybráno "Sign if mailed or saved in section" nebo "Enable encryption for this field". Ty příznaky SIGN a SEAL s tím obvykle souvisí, pokud pole umožňuje podpis a šifrování, ale není šifrované ani podepsané. V jiné aplikaci by to mohlo být nastaveno jinak než v této problematické. Pak by asi záleželo na tom, jakou metodou se tam ten text přidává. Nějaká metoda za určitých okolností tuším vytvoří v dokumentu další item se stejným názvem. |
mh | V security mám None. |
22.01.2018 10:04:42
ID: 3693.2
| Text přidávám v PS pomocí Call rtitem.AppendText(txt). Taky je zajímavé, že to někdy vznikne a někdy ne. |
VZ | Upřesnění |
23.01.2018 12:03:34
ID: 3693.3
| Jak se k tomu rtitemu v PostSave před tím dostanete - přes Source.Document.GetFirstItem() nebo jinak?
|
mh | Dávám ještě |
24.01.2018 13:51:58
ID: 3693.4
| Set doc = source.Document a pak Set rtitem = doc.GetFirstItem( "pole") |
VZ | Vypadá to jako standardní chování |
24.01.2018 16:29:26
ID: 3693.5
| Zkusil jsem to nasimulovat na LN klientovi 9.0.1 FP9 v lokální notebook.nsf pomocí LS:
Sub Postsave(Source As Notesuidocument) Dim doc As NotesDocument Dim rtitem As NotesRichTextItem Set doc = source.Document Set rtitem = doc.GetFirstItem("Body") If rtitem Is Nothing Then Print 'PostSave - rtitem Body was not found' Else Print 'PostSave - rtitem Body was found' Call rtitem.AppendText("This text was appended by PostSave. ") Call doc.Save(False, True) End If End Sub
Tento script se tam chová přesně podle popisu. Tzn. když je nový dokument a zadá se jen nadpis a pak [Save and Close], tak vzniknou 2 itemy Body - ten 1. je prázdný a je to zřejmě ten původní z NotesUIDocumentu a ten 2. má flagy SIGN SEAL a obsahuje příslušný text přidaný přes rtitem.AppendText. Při další editaci a uložení stejného dokumentu se text přesune z toho 2. Body do 1. Body itemu a do 2. Body s flagy se opět vloží stejný text přes rtitem.AppendText. Při dalším uložení pomocí Ctrl+S, pokud nebyl dokument mezitím uzavřen, se nestane nic - PostSave sice proběhne, ale AppendText nic nepřidá. Zřejmě je ten 2. item Body jen dočasný pomocný, protože jeho změna na pozadí editovaného dokumentu se na UI dokumentu v popředí nemůže projevit. A projeví se asi až po uzavření a otevření dokumentu nebo při přepnutí z editace do čtení pomocí Ctrl+E. Při debugu se to pořád jeví jako jeden item, v debuggeru se 2 itemy Body neukazují. |