Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/97: Рейтинг темы: голосов - 97, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.06.2007
Сообщений: 24

Lotus Script Как Проверить На Уникальность Поля?

09.07.2014, 10:23. Показов 20126. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Lotus Script как проверить на уникальность поля?

имеется поле OrgID

для событии Querysave написал следующий скрипт:


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc = source.Document
Dim db As NotesDatabase
Set db = doc.ParentDatabase
Dim ndc As NotesDocumentCollection
Dim var As String
If ( source.FieldGetText( "OrgTitle" ) = "" ) Then
Messagebox( "Заполните поле наименование организации" )
Call source.GotoField( "OrgTitle" )
continue = False
Else
If ( source.FieldGetText( "OrgID" ) = "" ) Then
Messagebox( "Отсутствует краткое наименование организации" )
Call source.GotoField( "OrgID" )
continue = False
Else
var = doc.getItemValue("OrgID")(o)
Set ndc = db.Search("456", Nothyng, 0)
numDocs& = ndc .Count
If (numDocs& >1) Then
Messagebox( "Такое краткое наименование существует!" )
Call source.GotoField( "Org ID" )
continue = False
Else
Messagebox( "Данные успешно сохранены" )
End If
End If
End If
End Sub
не могу исправить ошибки, а именно как сделать так, чтоб при поиске "456" в результате выдавалась ошибка что такое имя уже существует. При этом надо проверить на условие что найденный документ (например если он нашел только одну) редактируемый данный документ или другой, если другой то выдать сообщение об ошибке. С помощью кода

LotusScript
1
var = doc.getItemValue("OrgID")(o)
хотел присвоить значения поля в переменную и уже производить поиск

LotusScript
1
Set ndc = db.Search(var, Nothyng, 0)
Но выдает ошибку.

Буду рад любой помощи! Спасибо большое!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.07.2014, 10:23
Ответы с готовыми решениями:

Как проверить уникальность значения поля колонки в существующем документе
Здравствуйте! Я не силен в Excel, но хочу разобраться в некоторых его возможностях. Ситуация: есть таблица с тысячами записей. Мне...

Как Встроить Javascript В Lotus Script
Заранее извиняюсь если вопрос дурацкий, но не нашел как в Lotus Script вставить код на JavaScript. Что я делаю и зачем нужно: Я...

Как получить пользователя на Lotus Script?
ПРошу прощения за такой вопрос по синтаксису, но не скажите ли, как получить текущего пользователя? Какой аналог @User есть в лотус...

25
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
17.07.2014, 09:32
Студворк — интернет-сервис помощи студентам
разве не больше 0 должно быть?
Ну да, ">0", глупая ошибка)
0
0 / 0 / 0
Регистрация: 08.06.2007
Сообщений: 24
17.07.2014, 10:27
Цитата Сообщение от OKEN
Set db вы сделали просто так, для увеличения кол-ва строчек?
старый код) просто не удалил, забыл)
0
0 / 0 / 0
Регистрация: 08.06.2007
Сообщений: 24
23.07.2014, 12:43
savl
не можешь объяснить в чем именно проблема, когда компилирую выдает ошибку "Object variable not set"
а пару дней назад спокойно запускалась и работала
обработчик ошибок показывает что ошибка тут:


LotusScript
1
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")
вот сам уже полностью рабочий (пару дней назад) код:


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub Querysave(Source As Notesuidocument, Continue As Variant)
On Error Goto handler  обработчик ошибок
Const FuncName = {Sub "Querysave" } обработчик ошибок
Dim ErrStr As String обработчик ошибок
Dim db As NotesDatabase переменная класса базы данных
Dim doc As NotesDocument переменная класса документ базы данных
Dim currDoc As NotesDocument переменная класса документ базы данных
Dim view As notesView  класс вид
Dim ws As New NotesUIWorkspace
Dim ws As New NotesUIWorkspace текущий открытый документ
Dim ndc As NotesDocumentCollection переменная класса колекции документов
Set doc = source.Document получаем ссылку на текущий документ "заднего плана"
Set db = doc.ParentDatabase получаем ссылку на текущую БД
If ( source.FieldGetText( "OrgTitle" ) = "" ) Then
Messagebox( "Заполните поле наименование организации" )
Call source.GotoField( "OrgTitle" )
continue = False
Else
If ( source.FieldGetText( "OrgID" ) = "" ) Then
Messagebox( "Отсутствует краткое наименование организации" )
Call source.GotoField( "OrgID" )
continue = False
Else
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")
Set ndc=view.GetAllDocumentsByKey(source.FieldGetText( "OrgID" ), True)
If ndc.Count > 0 Then
Set currDoc= ndc.GetFirstDocument
Do While Not currDoc Is Nothyng
If currDoc.UniversalID <> doc.UniversalID Then
Msgbox "Документ с таким названием уже существует.",16
continue = False
Exit Sub
End If
Set currDoc= ndc.GetNextDocument(currDoc)
Loop
End If
Messagebox( "Данные успешно сохранены" )
End If
End If
Goto Endh обработчик ошибок
handler: обработчик ошибок
ErrStr = FuncName & ": " & Err &", в стр " & Erl & nLine & Error$ обработчик ошибок
Msgbox ErrStr, 16, "Error!" обработчик ошибок
Resume endh обработчик ошибок
Endh: обработчик ошибок
End Sub
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
23.07.2014, 12:48
Заменить:

LotusScript
1
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")
на

LotusScript
1
Set view=db.GetView({(Hidden)\Main View})
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
23.07.2014, 12:51
Цитата Сообщение от OKEN
>Set view=ws.CurrentDatabase.Database.GetView ("Main View")
так получать БД не надо. Есть ньюансы с CurrentDatabase. Лучше из документа (или из сессии, если это текущая БД) Set db вы сделали просто так, для увеличения кол-ва строчек? ;)
и вот кому я это писала? да, я мб, не права, но у меня сложилось впечатление, что стажер компании очень не хочет туда попасть.
0
0 / 0 / 0
Регистрация: 08.06.2007
Сообщений: 24
23.07.2014, 13:15
Цитата Сообщение от OKEN
у меня сложилось впечатление, что стажер компании очень не хочет туда попасть.
с удовольствием я бы поработал бы я там, но это не мое, я не стажер, а практикант с университета, было 2 варианта, либо тупо сидеть в приемной комиссии и принимать абитуриентов, либо пойти в компанию делать хоть что-то умное, я выбрал второе, для меня все это в новинку поэтому не очень понимал, как я уже писал, чем больше спрашиваю, тем больше начинаю понимать. ранее работал только Visual studio на c++ и с БД не работал. Вот из-за этого у меня такие глупые вопросы)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.07.2014, 13:15

Как отловить ввод текста на Lotus Script?
Добрый день, прошу поделиться опытом или советами. Хочу получать текст при вводе пользователем в форме, а точнее отлавливать каждую...

Как выполнить Lotus Script из чужой базы?
Lotus 6.5.5 Есть библиотека функций Script Libraries. Мне нужно из другой базы выполнить одну из функций и получить от неё данные. ...

Как затолкать Vb тип Enum в Lotus Script
Как затолкать VB тип ENum в Lotus Script а еще VB Byte - это что, String*1 (в R5)

Как объдинить значения двух полей типа Names в Lotus Script ?
Как объединить значения двух полей типа Names в Lotus Script ?

Как проверить на уникальность логин?
есть скажем форма регистрации то как проверить уникальность логина(без аякса)


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru