Мелкие Вопросы Rtfm

  • Автор темы Автор темы serko
  • Дата начала Дата начала
doc.field вернет массив, операция конкатенации строк для массива не определена. Делать doc.field(0) &
 
логично - нельзя массиву присвоить строку...
после "инициализации" значением из др. поля(а здесь применяется расширенная форма) поле "становится" многозначным (а если оно уже инициализированно - то уже и было)
а потому - чтобы не осложнять жизнь себе и всем кто будет подерживать - я предпочитаю явную форму
Dim v
v=doc.GetItemValue({somename})
Call doc.RplaceItemValue({somename}, anyvalue)
для получения строки из 0-го элемента
Dim s As String
s=doc.GetItemValue({somename})(0)
в случае если в поле не строка - либо преобразовывать Cstr(...) либо получать в соответ тип, либо получать по лбу в Variant
для оценки типа - читать DataType
 
Можно создать таблицу и в настройках включить отображение строк в качестве вкладок. Т.е. получается Окно с вкладками, между которыми можно переключаться. Как на LotusScript переключаться между этими вкладками? Какие-то предварительные настройки для таблицы надо делать?
 

В управляющее поле (можно скрытое) -> "Имя вкладки" и рефреш.
Кста, в него пишется имя вкладки на которую переключился юзер.
Надо иметь ввиду, что в этом режиме, каждый раз при переключении вкладок происходит рефреш дока.
 
savl
Ну да, написал совсем не точно :lol:
1 Для программного переключения вкладок достаточно RefreshHideFormulas
2 При переключении вкладок юзером (в этом режиме) - происходит рефреш дока
 
alexas1
Рефреш документа происходит только если доступны для переключения еще и вкладки и только в режиме редактирования.
То есть под пунктом "программного переключения" стоит галочка "так же переключать пользователем".
У меня это вырублено и нарисованы свои "вкладки", поэтому засомневался...
По самодельным вкладкам переключается без рефреша документа.
 
Возникла пара вопросов:
1) Заметил, что я могу удалять документы через комбинацию ctrl+X. Как можно это "отключить"?
2) В форме документа есть экшн, который создает новый дочерний документ. Суть такова: нажимая на кэшн сначала проверяется сохранен ли документ. Если нет, то вывожу сообщение "Сохраните документ". Проблема в том, что я не знаю как замутить триггер состояния. Думал поле создать SaveStatus(Hidden) куда бы пихал значение True или False, например. Сохраняю документ - TRUE, документ не сохранен - FALSE. Чтобы не засорять форму я решил, что поле будет создаваться программно при открытии документа и удаляться - при закрытии. Проблема такая встает... Как проконтролировать действия пользователя? Он сохранил документ, записалось TRUE, потом он что-то подправил в текущем документе без сохранения уже и нажал на экшн и тот его пропустит, что есть плохо. Лично я думаю, что при сохранении документ должен выходить из режима редактирования в режим чтения(хз только что за команда на языке формул и в LS), а при даблклике или переходе в режим редактирования менять статус поля на FALSE. Подскажите, как лучше здесь поступить.
 
Еще 3 вопрос возник. Надоел он уже...
Код кнопки:
Код:
Sub Click(Source As Button)
Dim boxType As Long
Dim answer As Integer
answer = Messagebox("Do you want to continue?", MB_YESNOCANCEL, "")
Msgbox answer
End Sub

Выводит:
1.jpg
2.jpg
Почему? Почему только кнопка ОК? Где остальные 2 кнопки? B)
 
1) Заметил, что я могу удалять документы через комбинацию ctrl+X. Как можно это "отключить"?
Hack на уровне ОС - перехватить сочетание клавиш (тут уже не нотус) и обработать как надо (или не обрабатывать вовсе, главное, чтоб до нотуса не дошло B) )
2) Чтобы не засорять форму я решил, что поле будет создаваться программно при открытии документа и удаляться - при закрытии.
А вот нафига? Создай поле на форме и не сохраняй его никогда (сделй его computed for display или notesItem .SaveToDisk = False)

Дальше ничего не понял, но read & edit вполне себе переключаются notesUIDocument.EditMode = flag (True or False)

3) Почему только кнопка ОК? Где остальные 2 кнопки?
Я ж уже писал: или включать в скрипт %Include "lsconst.lss" или использовать числовые соответствия (в хелпе на msgbox есть табличка)
 
Спасибо. Дошло. А как правильно реализовать механизм передачи документов из одной БД в другую?
 
... как правильно реализовать механизм передачи документов из одной БД в другую?
Ну, логично просто копировать (плюс, удалить в "старой" базе, если надо).
Хотя... доки из одной базы легко доступны из другой (элементы дизайна другой базы тоже). Тут надо соображать - надо-ли (если, конечно, это не архивирование или т.п.)
 
Есть фрагмент в querySave:

Call curdoc.ReplaceItemValue("delstatus", "False")
oldOrgID = curdoc.GetItemValue("OrgID")(0)
Source.EditMode = False

При сохранении выдает ошибку:

---------------------------
IBM Lotus Notes
---------------------------
Attempt to execute nested form events.
---------------------------
ОК
---------------------------

Это началось после того, как я добавил строчку Source.EditMode = False
Но мне крайне важно выполнить эту строчку. Как быть?
 
Хотя это может не помочь, так как при переходе из режима редактирования в режим чтения идет вопрос о сохранении.

Добавлено:
Мне надо, чтобы переходил в режим просмотра после сохранения
хм... ну так переоткрой его просто.
 
Все запахало. Прописал в PostSave. Спасибо за отклик )
 
Есть проблема. Функция Trim убирает с начала и с конца строки пробелы, однако это правило не работает для Enter(переход на новую строку). Как можно эту заразу словить?
 
Мы в соцсетях:

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