Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/95: Рейтинг темы: голосов - 95, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506

Изменить значение поля из представления

18.05.2009, 10:46. Показов 18857. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Нужно: по нажатию на кноку из действий в представлении изменить значение поля текущего документа.
Как?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2009, 10:46
Ответы с готовыми решениями:

Вопрос про Rt-поля и представления
Раньше никогда не было такой мысли, но все же спрошу: Возможен ли вариант использования конвертированного содержимого RT-поля в...

Сохранение значение поля модели после обработки представления
Народ, подскажите, пожалуйста такой момент. Есть модель, на основе нее строится представление, в котором происходит изменение полей int и...

Изменить значение поля в class
Есть безобидная модификация для игры Minecraft, добавляющая в угол экрана мини-карту - Rei's Minimap. Но она имеет один недостаток: на...

10
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
18.05.2009, 10:49
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)

End Sub

событие вьюшки
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
18.05.2009, 11:04
Если именно по нажатию кнопки, то лепишь во view кнопку, получаешь в ней

Code
1
uiview.Documents
и меняешь в полученной коллекции что надо на что угодно.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
18.05.2009, 11:28
@SetField
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
18.05.2009, 11:42
А ещё можно агента с Target = SelectDocuments написать и шмальнуть его под кнопкой.
Если бы тут был lmike, он бы посоветовал джаву прикрутить и шмальнуть некий external класс из опенсорсевых разработок
Вообщем, вариантов громадЪе.
0
Tyo
18.05.2009, 12:41
Цитата Сообщение от dymat
Всем привет!
Нужно: по нажатию на кноку из действий в представлении изменить значение поля текущего документа.
Как?
Чтоб получить только один текущий документ, а не выделенные галками, используй NotesSession.DocumentContext.
Св-ва uiview.Documents и агент с Target = SelectDocuments работает по всем выделенным галкой документам. При этом если текущий (выделенный рамкой) не отмечен галкой, то он не будет обработан.

После получения документа doc.

Code
1
2
call doc.ReplaceItemValue("<имя поля>", <значение>)
call doc.Save( True, False)
Если изменяемое поле влияет на значения, отображаемые в представлении, то надо вызвать

Code
1
2
dym ws as new NotesUIWorkspace
call ws.ViewRefresh
чтоб сразу увидеть результат.
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
18.05.2009, 13:58
Спасибо всем! сделал


Цитата Сообщение от TIA
Чтоб получить только один текущий документ, а не выделенные галками, используй NotesSession.DocumentContext
Появилось еще одна проблема: на строчке

Code
1
Call doc.ReplaceItemValue("Reit",doc.GetItemValue("Reit")+1)
Ошибка: Type miss match
я так понимаю doc.GetItemValue("Reit") нужно преобразовать в integer? если да, то как?
0
Tyo
18.05.2009, 14:12
Цитата Сообщение от dymat
Call doc.ReplaceItemValue("Reit",doc.GetItemV alue("Reit")+1)
Ошибка: Type miss match
я так понимаю doc.GetItemValue("Reit") нужно преобразовать в integer? если да, то как?
GetItemValue всегда возвращает массив.
Если поле Reit отсутствует, то скрипт возвращает массив строк. Значение -- один элемент с пустой строкой.
Если не пусто, то массив того типа, который содержится в поле.
Исправить можно, например, так:

if CStr(doc.GetItemValue("Reit")(0))="" then
Call doc.ReplaceItemValue("Reit", 1)
else
Call doc.ReplaceItemValue("Reit", doc.GetItemValue("Reit")(0)+1)
end if
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
18.05.2009, 14:19
Цитата Сообщение от dymat
я так понимаю doc.GetItemValue("Reit") нужно преобразовать в integer? если да, то как?
ну совсем уже хелп читать не пробовали?
во-первых, нолик забыл при взятии поля - надо doc.GetItemValue("Reit")(0) + 1, т.к. GetItemValue вернет массив (Variant).
Если поле (item) Reit у тебя содержит строку, то тогда, конечно, преобразуй - через Cint, например.
0
0 / 0 / 0
Регистрация: 17.10.2008
Сообщений: 506
18.05.2009, 14:20
TIA Спасибо!
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
18.05.2009, 15:05
заметил забавную штуку, если в поле типа Number написать не число, а в скрипте попытаться вычитать его значение, то...
получим ошибку "Variant does not contain a container", что связано с тем, что NotesItem.Values = EMPTY, т.к. поле не прошло встроенную проверку (валидацию) значения...

посему рекомендую обратить внимание на предварительную проверку данных в нужных полях! чтобы потом в коде не иметь проблем с типами и пустыми значениями...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2009, 15:05
Помогаю со студенческими работами здесь

Ка изменить значение поля выборки?
Ну собственно вчерашний вариант продолжение, руки до компа тока к вечеру дошли:) вот имеем текст процедуры, когда пытаемся изменить...

Изменить логическое значение поля таблицы
В делфи через ADOQuery, ADOConection подключена таблица базы данных (MS Access). В таблице есть поле &quot;Исполнено&quot; с логическим...

Как изменить значение поля 2000
Здрасте, вопрос наверно дурацкий, но я что-то не догоню никак нужно в формне заполнять поле увеличивая его значение на еденицу каждый...

Как в mysql изменить значение поля?
... $result2=mysql_query(&quot;SELECT * FROM `fio` WHERE `nom_i` = $nomid &quot;); while($row=mysql_fetch_array($result2))// берем...

Изменить значение поля, последней строки
Всем доброго времени суток! Помогите пожалуйста начинающему( procedure TForm1.Button6Click(Sender: TObject); begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru