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

Тема в разделе "Lotus - Программирование", создана пользователем -, 26 мар 2008.

  1. Гость

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    вовсе нет, обращайтесь к нему как к обічному полю у которого Вы забираете массив значений

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

    Что-то типа этого:
    Код (Text):
    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
    Да но так у пользователь все равно будет возможность выбора хотя и из пустого списка
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Сразу после выбора значения? А если ошибешься при выборе?
    Лучше уж сделать, чтобы после сохранения оно становилось CFD.

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Денис Кириченко
    В смысле? Operation - это поле со списком ?
    Кавычки не забыл?


    @SetField("OperationSecond"; @GetField("Operation"))
     
  7. Гость

    Тормозим :)
     
  8. Гость

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

    Sandr Гость

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

    значение для возможного выбора...
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Денис Кириченко
    а как у Вас вообще организован выбор значений для выбора?
     
  12. Гость

    Код (Text):
    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
     
  13. Sandr

    Sandr Гость

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Денис Кириченко, улучшение кода налицо!
    Я аж шокирован произошедшими переменами.
    Так держать!
     
  15. Гость

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

    Sandr Гость

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

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


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

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

    Sandr Гость

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

    Спасибочки ;)
     
  20. Гость

Загрузка...

Поделиться этой страницей