• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как залочить поле со списком после выбора из него значения

  • Автор темы Guest
  • Дата начала
G

Guest

Все привет!
Что бы залочить поле со списком я так понимаю его надо перевести в тип Вычесляемое или можно еще как то. Помогите, кто может.
 
M

morpheus

вовсе нет, обращайтесь к нему как к обічному полю у которого Вы забираете массив значений

Значения ДЛЯ выбора вовсе не попадают в Item.Value! туда попадают только ыбранные значения
 
G

Guest

вовсе нет, обращайтесь к нему как к обічному полю у которого Вы забираете массив значений

Значения ДЛЯ выбора вовсе не попадают в Item.Value! туда попадают только ыбранные значения
Что-то типа этого:
Код:
Sub Onchange(Source As Field)
Dim uidoc As NotesUIDocument
Dim cDoc As NotesDocument
Dim ws As New NotesUIWorkspace	

Set uidoc = ws.CurrentDocument	
Set cDoc = uidoc.Document

If cDoc Is Nothing Then Exit Sub

Call cDoc.ReplaceItemValue("Operation", “”)
End Sub

Да но так у пользователь все равно будет возможность выбора хотя и из пустого списка
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Сразу после выбора значения? А если ошибешься при выборе?
Лучше уж сделать, чтобы после сохранения оно становилось CFD.

Точнее не становилось, а скрывалось. Вместо него появлялось бы CFD-поле.
 
G

Guest

Сразу после выбора значения? А если ошибешься при выборе?
Лучше уж сделать, чтобы после сохранения оно становилось CFD.

Точнее не становилось, а скрывалось. Вместо него появлялось бы CFD-поле.

Thanks :) Medevic Все очень классно работает, но вот не задача, как из поля со списком взять текущее значение, а не первое в поле? Так:
Код:
@SetField(OperationSecond;@GetField(Operation))
Берет первое из списка, а не текущее.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Денис Кириченко
В смысле? Operation - это поле со списком ?
Кавычки не забыл?


@SetField("OperationSecond"; @GetField("Operation"))
 
G

Guest

Sorry, вопрос тупой, но как добавить значение в Combobox через AppendToTextList че-то не выходит :) Как-то:
Код:
While Not OtherDoc Is Nothing		
i = i + 1
Call itemNumberInSeries.AppendToTextList(Cstr( i ))
Set OtherDoc = OtherDocs.getNextDocument(OtherDoc)
Wend
 
S

Sandr

Денис Кириченко
Значение итема? или значение для возможного выбора?
 
M

morpheus

Денис Кириченко
а как у Вас вообще организован выбор значений для выбора?
 
G

Guest

Денис Кириченко
а как у Вас вообще организован выбор значений для выбора?
Код:
Sub Onload(Source As Notesuidocument)
On Error Goto Errh

Dim cDoc As NotesDocument
Set cDoc = Source.Document
If cDoc Is Nothing Then Exit Sub

Dim session As New NotesSession

Static db As NotesDatabase
Static view As NotesView  
If db Is Nothing Then Set db = session.CurrentDatabase
If view Is Nothing Then Set view = db.GetView ("TypeOper\BP" )

Dim i As Integer
Dim itemNumberInSeries As NotesItem
Set itemNumberInSeries = cDoc.GetFirstItem( "NumberOfOper" )

Dim OtherDoc As NotesDocument
Dim OtherDocs As NotesDocumentCollection
Set OtherDocs = view.GetAllDocumentsByKey(cDoc.GetItemValue("BusinessProcess")(0), True)
Set OtherDoc = OtherDocs.getFirstDocument
If OtherDoc Is Nothing Then
Call itemNumberInSeries.AppendToTextList("1")
Exit Sub
End If
While Not OtherDoc Is Nothing		
i = i + 1
Call itemNumberInSeries.AppendToTextList(Cstr( i ))
Set OtherDoc = OtherDocs.getNextDocument(OtherDoc)
Wend

Exit Sub
errh:
Msgbox Error & | in line | & Erl(), 64, |Lotus Notes (| & Lsi_info(2) & |)|
Exit Sub
End Sub
 
S

Sandr

хм..
Записывайте все возможные значение в одно поле.
В Combobox на 2-й закладке (где вычисляются все возможные значения) укажите это поле и все.. В чем проблема? не понимаю...
 
O

Omh

Денис Кириченко, улучшение кода налицо!
Я аж шокирован произошедшими переменами.
Так держать!
 
G

Guest

хм..
Записывайте все возможные значение в одно поле.
В Combobox на 2-й закладке (где вычисляются все возможные значения) укажите это поле и все.. В чем проблема? не понимаю...

Ищу ошибку, а потом стреляюсь, не выходит записать даже во второе поле.
Sorry, подумаю завтра.
Мозги :)
 
S

Sandr

Мне не совсем понятны операции с OtherDoc. Зачем Вы его получаете, но при этом значение пишите в itemNumberInSeries, который в другом документе..
 
G

Guest

Мне не совсем понятны операции с OtherDoc. Зачем Вы его получаете, но при этом значение пишите в itemNumberInSeries, который в другом документе..

OtherDoc использую для получения количества документов с общим для них признаком BusinessProcess. Вся эта заморочка делается, что бы пользователь мог выбрать порядковый номер документа из списка, а не искать по всей базе, сколько документов с таким признаком.


Ищу ошибку, а потом стреляюсь, не выходит записать даже во второе поле.
Sorry, подумаю завтра.
Мозги ;)

Я же говорил(мысли в слух) надо отдохнуть. Все до не могу просто надо было сохранится. Sorry что морочу голову, просто на много легче высказывать свои мысли на бумаги (хоть и виртуальной) :)

Можно ли как-то определить текущее значение ComboBox, которое было выбранно из массива значений?
 
S

Sandr

Можно ли как-то определить текущее значение ComboBox, которое было выбранно из массива значений?

doc.getItemValue(имя ващего комбобокса) - получаете вариант. Если многозначный выбор, то работаете с вариантом, если нет - то берете нулевое значение...
 
Мы в соцсетях:

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