ОБСУЖДЕНИЕ

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

497 ответов 97,8 тыс.
AI-выжимка обсуждения скоро
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 переключаться между этими вкладками? Какие-то предварительные настройки для таблицы надо делать?
 
Switch Rows
В управляющее поле (можно скрытое) -> "Имя вкладки" и рефреш.
Кста, в него пишется имя вкладки на которую переключился юзер.
Надо иметь ввиду, что в этом режиме, каждый раз при переключении вкладок происходит рефреш дока.
 
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(переход на новую строку). Как можно эту заразу словить?
 

Статистика тем

Создано
serko,
Последний ответ от
serko,
Ответы
497
Просмотры
97 805