0 / 0 / 0
Регистрация: 08.06.2007
Сообщений: 24

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

09.07.2014, 10:23. Показов 20137. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru