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

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#2
вовсе нет, обращайтесь к нему как к обічному полю у которого Вы забираете массив значений

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

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

Значения ДЛЯ выбора вовсе не попадают в 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

Что это ? :)
Lotus team
10.12.2004
3 346
2
#4
Сразу после выбора значения? А если ошибешься при выборе?
Лучше уж сделать, чтобы после сохранения оно становилось CFD.

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

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#6
Денис Кириченко
В смысле? Operation - это поле со списком ?
Кавычки не забыл?


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

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

Sandr

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

morpheus

скриптописец
07.08.2006
3 915
1
#11
Денис Кириченко
а как у Вас вообще организован выбор значений для выбора?
 

Гость
#12
Денис Кириченко
а как у Вас вообще организован выбор значений для выбора?
Код:
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

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#14
Денис Кириченко, улучшение кода налицо!
Я аж шокирован произошедшими переменами.
Так держать!
 

Гость
#15
хм..
Записывайте все возможные значение в одно поле.
В Combobox на 2-й закладке (где вычисляются все возможные значения) укажите это поле и все.. В чем проблема? не понимаю...
Ищу ошибку, а потом стреляюсь, не выходит записать даже во второе поле.
Sorry, подумаю завтра.
Мозги :)
 
S

Sandr

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

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


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

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

Sandr

Гость
#18
Можно ли как-то определить текущее значение ComboBox, которое было выбранно из массива значений?
doc.getItemValue(имя ващего комбобокса) - получаете вариант. Если многозначный выбор, то работаете с вариантом, если нет - то берете нулевое значение...