• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вывести результат в поле

zn8282

New member
28.07.2023
2
0
BIT
0
Добрый день!
Нашел в хелпе скрипт по определению имени сервера на котором зарегистрирован пользователь + обрезка полученного имени до нужного кол-ва символов. Подскажите новичку что необходимо добавить в скрипт чтобы результат выводился в поле формы. Видимо должно быть нечто подобное: doc.SrvName=
Код:
Sub Click(Source As Button)
    Dim subString As String   
    Dim session As New NotesSession
    Dim maildb As New NotesDatabase("", "")
    Call maildb.OpenMail
    Dim nName As NotesName
    Set nName = session.CreateName(maildb.Server)
    subString$ = Left$(nName.Abbreviated, 4)   
    Print(subString$)
    Set getUserMailServer = nName
End Sub
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
246
Добрый день!
Нашел в хелпе скрипт по определению имени сервера на котором зарегистрирован пользователь + обрезка полученного имени до нужного кол-ва символов. Подскажите новичку что необходимо добавить в скрипт чтобы результат выводился в поле формы. Видимо должно быть нечто подобное: doc.SrvName=
Код:
Sub Click(Source As Button)
    Dim subString As String  
    Dim session As New NotesSession
    Dim maildb As New NotesDatabase("", "")
    Call maildb.OpenMail
    Dim nName As NotesName
    Set nName = session.CreateName(maildb.Server)
    subString$ = Left$(nName.Abbreviated, 4)  
    Print(subString$)
    Set getUserMailServer = nName
End Sub
да
но должна быть форма с этим полем (если надо потом это видеть)
и расширенный синтаксис может приводить к ошибкам... (хотя есть его ценители ;) )
Call doc.ReplaceItemValue({SrvName}, subString$):doc.Save False, False
doc надо создать (см. хэлп) и задать форму для отображения Call doc.ReplaceItemValue({Form},{MyForm})
 

zn8282

New member
28.07.2023
2
0
BIT
0
Спасибо, но все равно не очень понял )) Форма есть и поле есть. Код должен выполняться в форме.
 

savl

Lotus Team
28.10.2011
2 604
313
BIT
232
Спасибо, но все равно не очень понял )) Форма есть и поле есть. Код должен выполняться в форме.
Основы нужны, книги то есть? Тут на форуме был раздел с литературой.
Суть в том, что единица данные в Lotus/Domino это note (запись), у записи есть поля. В каждой записи может быть разное количество полей.
Элемент дизайна или документ в базе - это всё запись, но чаще пользователи работают с документами, а разработчики с дизайном.
Форма - это элемент дизайна, которая отображает документ и позволяет с ним работать пользователю. При этом, один и тот же документ можно открыть разными формами.
"Код должен выполняться в форме": в данном случае код в кнопке, которая на форме, но форма к документу не привязана, как и поле.
Надо сделать связь:
Судя по всему документ открыт на экране, режим редактирования (предположим), надо получить объект открытого документа.
В данном случае проще сделать через NotesUIWorkspace, затем получить NotesUIDocument и потом уже развилка: работать с документом на экране или в бэке., ниже пример для бэка.

Код:
Dim ws as new NotesUIWorkspace
Dim uidoc as NOtesUIDocument
set uidoc = ws.currentDoceument

dim doc as NotesDocument
set doc = uidoc.Document

call doc.ReplaceItemValue("MyFieldName", "MyValueString")

call uidoc.Refresh()
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
246
Основы нужны, книги то есть? Тут на форуме был раздел с литературой.
Суть в том, что единица данные в Lotus/Domino это note (запись), у записи есть поля. В каждой записи может быть разное количество полей.
Элемент дизайна или документ в базе - это всё запись, но чаще пользователи работают с документами, а разработчики с дизайном.
Форма - это элемент дизайна, которая отображает документ и позволяет с ним работать пользователю. При этом, один и тот же документ можно открыть разными формами.
"Код должен выполняться в форме": в данном случае код в кнопке, которая на форме, но форма к документу не привязана, как и поле.
Надо сделать связь:
Судя по всему документ открыт на экране, режим редактирования (предположим), надо получить объект открытого документа.
В данном случае проще сделать через NotesUIWorkspace, затем получить NotesUIDocument и потом уже развилка: работать с документом на экране или в бэке., ниже пример для бэка.

Код:
Dim ws as new NotesUIWorkspace
Dim uidoc as NOtesUIDocument
set uidoc = ws.currentDoceument

dim doc as NotesDocument
set doc = uidoc.Document

call doc.ReplaceItemValue("MyFieldName", "MyValueString")

call uidoc.Refresh()
дополню (для @zn8282 )...
это код для фронта именно Notes client работать будет, но с нюансами: все вычисляемые поля будут глючать, формулы для списков не будут работать вовсе
надёжный вариант при изменениях, если они "тянут" интерфейсные формулы, переоткрыть сохранённый док (предварительно закрыв uidoc)
если нет зависимостей (в форме) - можно использовать текущий вариант
если говорить об общем подходе в платформе, не стоит искать:
- реляции
- триггеры (в "классическом" SQL понимании)
- практически нет аналогий с нодой (если говорим про классический нотес)
- невозможность сложных форм (лучше не пытаться)
- UI разнообразие (искать его - это отдавить себе причинное место ;) )
для платформы есть альтернативные пути взаимодействия и богатые возможности интеграции
короче - если нет опыта в классический нотес, но есть другие скилы - смотреть в интеграцию
 
Мы в соцсетях:

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