• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Поле NotesRichTextItem и SaveOptions

seoman2

Green Team
17.02.2010
499
1
BIT
15
На форме есть поле типа NotesRichTextItem , в которое по таймеру добавляю вложение.
Никаких подформ нет.
Код функции таймера в "Globals" формы.
После прикрепления аттача хочу переоткрыть форму без диалоговых окон.
Всё неудачно... Появляется окошко сохранения,
если нажать "нет" - то аттач в поле,
если "да" - аттач выпадает в низ формы из поля.
Код:
.....
nTimer.Enabled = False
     
        doc.SaveOptions = "0"
        Call doc.save (False, True)
        Call uidoc.Close
        Call workspace.EditDocument(False, doc)
        Print doc.header(0)
        doc.SaveOptions = "1"
        Call doc.save (False, True)


Тему https://codeby.net/threads/vlozhenie-uxodit-vniz-formy.31745/page-2#post-231772 читал.
- читал.
Не помогает.
 
Последнее редактирование модератором:

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
Положите RTF в секцию с контролируемым доступом и дайте доступ на редактирование НИКОМУ.
 
  • Нравится
Реакции: seoman2

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
можно РТ положить на вкладку программно переключаемой таблицы, ну а переключатель не делать ;)
 

seoman2

Green Team
17.02.2010
499
1
BIT
15
дайте доступ на редактирование НИКОМУ
Это в секции в Access formula. какую формулу писать в Type - Editable ?
@Nothing ?
Мне надо по умолчанию на форме прописать доступ секции.

Проверил - работает, если с инт. юзера добавил доступ на секцию.

можно РТ положить на вкладку программно переключаемой таблицы, ну а переключатель не делать
В таблице сделать две закладки? как тут:
 
Последнее редактирование:

seoman2

Green Team
17.02.2010
499
1
BIT
15
TRA_TA_TA_TA" - что-нить, что никогда не будет использоваться в качестве имени пользователя, группы, роли.
У новых документов секция доступна на редактирование.
Вроде всё так?
 

Вложения

  • 1111.jpg
    1111.jpg
    12,2 КБ · Просмотры: 468

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
и с SaveOptions
Код:
doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=false
и после открытия дока, с диска - ничего не надо будет повертать взад
 
Последнее редактирование:
  • Нравится
Реакции: seoman2

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
У новых документов секция доступна на редактирование.
Вроде всё так?
В данном случае, у вас получается содержимое поля TRA_TA_TA_TA. Я же рекомендовал указать значение "TRA_TA_TA_TA". По факту, если у вас поля TRA_TA_TA_TA в докмуенте нету, то присвоится "". По идее тоже должно работать.
Фишка в чем: если делать одновременно обновление RTF и в bg (background) и в ui, то результаты bg будут утеряны (или частично учеряны). А если вы кладете RTF в секцию с контролируемым доступом и НИКОМУ не даете доступ на редактирование, то изменения в ui происходить не будут. И мы смело можем оперировать RTF в bg.
 

seoman2

Green Team
17.02.2010
499
1
BIT
15
Xat - NotesRichTextItem. РТ
В общем всё работает как надо и с секциями с контролируемым доступом и код "doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=false" оказался просто спасение.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
Xat - NotesRichTextItem. РТ
В общем всё работает как надо и с секциями с контролируемым доступом и код "doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=false" оказался просто спасение.
я к тому:
- инстанс надо удалять (delete uidoc)
- РТ не надо если он есть - просто получать
тогда, возможно и не будет рассогласования front и back
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
тогда, возможно и не будет рассогласования front и back
Да, вы правы, нужно получать поле. если оно есть, иначе создавать.
Но рассогласование вса равно будет.
Даже если compact делать, все равно будет рассогласование..
А compact делать я бы советовал, чтобы RTF не множился.
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
1. открыть док на редактирование (при этом RTF поле присутствует в форме и отображается)
2. ctrl+S (в QuerySave присутсвует код добавления значения в RTF)

Т.е. происходит двойное изменение RTF: ui и bg. Но ui выигрывает и затирает измениния bg.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
1. открыть док на редактирование (при этом RTF поле присутствует в форме и отображается)
2. ctrl+S (в QuerySave присутсвует код добавления значения в RTF)

Т.е. происходит двойное изменение RTF: ui и bg. Но ui выигрывает и затирает измениния bg.
как я уже упомянул про таблицу - 1-ый пункт исключается
НО если перед изменением bg сделать uidoc.Refresh(true) и получить bg - противоречия не возникнет (КМК)
QS использовать так - не совсем верно, для bg, тогда уж в PS (с переподписанием - если надо)
 
Последнее редактирование:
  • Нравится
Реакции: alexas1

seoman2

Green Team
17.02.2010
499
1
BIT
15
doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=false
Вот только сейчас заметил, что вложение - всё ок - сохраняется в поле, а у документа SaveOptions остался 0.
Код:
doc.ReplaceItemValue({SaveOptions},{0}).SaveToDisk=False
Call doc.save (False, True)
Call uidoc.Close
Call workspace.EditDocument(False, doc)
 
Последнее редактирование:
Мы в соцсетях:

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