Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: редактирование столбцов во View
Форум программистов > Базы данных и администрирование > Lotus > Lotus - Программирование
NickProstoNick
Доброго времени суток!
Подскажите, как можно реализовать редактирование столбцов во View.
Например чтоб при щелчке на определенном столбце в строке вида, этот столбец переходил в режим редактирования

Все!!! Извините за флуд! Вопрос снят! Я разобрался!
NickProstoNick
Сделать сделал.. но не все получается.... sad.gif
Кто знает - подскажите плиз как светить в нужном столбце DialogList ?
Medevic
Никак.
NickProstoNick
ну а например пиклист засветить?

вобщем мне надо провести диалог с пользователем и дать ему ввести строго ограениченые значения
Mihal
]]>http://notesnet.ru/nn/notesnet.nsf/note/7E...3256D57002FDC22]]>

Не оно?
NickProstoNick
А Б А Л Д Е Т Ь ! ! ! ! ! smile.gif)))
Похоже что оно smile.gif
Буду разбираться smile.gif
Omh
NickProstoNick
Но это только под винду, т.к. юзается API виндовский.
Что бы работало везде, можно на InViewEdit вызывать лотусный ws.Prompt.
Будет работать везде.
NickProstoNick
Согласен, но мне надо дать пользователю выбор значений, но не давать ему вносить их вручную.
Вот и бьюсь над этим
Omh
ws.Prompt(PROMPT_OKCANCELLIST, ...
NickProstoNick
smile.gif Дякую!!! получилось! То что надо
Mihal
Prompt выскакивает где сам захочет.

Цитата(NickProstoNick @ 28:08:2008, 13:01 ) *
smile.gif Дякую!!! получилось! То что надо


Їжте та не обляпайтесь! biggrin.gif
NickProstoNick
так.... очередной вопрос.... smile.gif
При редактировании столца в виде светится поле для ввода...
Вопрос следующий.... можно ли программно изменить значение этого поля? чтоб в нем светилось то что выбрал пользователь?
Я же просто делаю изменения в документе... а в этом поле для редактирования светится старое значение до тех пор пока с него не уберешь курсор
Omh
Док сохраняешь?
NickProstoNick
аха.... все получается... в доке то что надо...но вот в самом поле - старое или пустое значение до момента пока не скроется поле для редактирования
Omh
ну тогда ws.ViewRefresh
NickProstoNick
Вот пример.

1. В поле содержится старое значение
2. В поле уже новое значение, но светится еще старое...

как сделать чтоб после внесения светилось новое значение?

Цитата(Omh @ 28:08:2008 - 14:25) *
ну тогда ws.ViewRefresh


smile.gif после этого клиент вообще вылетает с ошибкой
Omh
1. Что за ошибка?
2. Вообще, если всё делаешь правильно, то не надо потом решрешить, он сам обновляет view.
Medevic
Continue = False надо поставить в конце.
NickProstoNick
я совсем запутался sad.gif
если не сложно... подскажите что не правильно
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
      REM Define constants for request types
    Const QUERY_REQUEST = 1
    Const VALIDATE_REQUEST = 2
    Const SAVE_REQUEST = 3
    Const NEWENTRY_REQUEST = 4
    
  REM Define variables
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim caret As String
    
  REM Get the CaretNoteID - exit if it does not point at a document
    caret = Source.CaretNoteID
    If caret = "0" Then Exit Sub
    
  REM Get the current database and document
    Set db = Source.View.Parent
    Set doc = db.GetDocumentByID(caret)
    
    Dim workspace As New NotesUIWorkspace
    Dim picklist As Variant
    Dim Tmp() As Variant
    Dim i As Integer
    Dim j As Integer
    
    
  REM Select the request type
    Select Case Requesttype
        
    Case QUERY_REQUEST:
        
        If Colprogname(0) = "Comment" Then
            j = 1
            i = 0
            Do
                Redim Preserve  Tmp(i) As Variant
                If Month(Today())+i > 12 Then
                    Tmp( i ) = Cstr(Year(Today())+1) + "-" + Cstr( j )
                    j = j + 1
                Else
                    Tmp( i ) = Cstr(Year(Today())) + "-" + Cstr(Month(Today())+i )
                End If
                i = i + 1
            Loop While j <= 12
            
            picklist = workspace.Prompt (PROMPT_OKCANCELLIST, _
            "Select a Database", _
            "Select a database to open.", _
            Tmp(0), Tmp)
            If picklist<>"" Then
                Call doc.ReplaceItemValue(Colprogname(0), picklist)
                Call doc.Save(True, True, True)
            End If
        End If
        
  REM Reserved - do not use in Release 6.0
        
    Case VALIDATE_REQUEST
  REM Cause validation error if user tries to exit column with no value
'        If Fulltrim(Columnvalue(0)) = "" Then
'            Messagebox "Требуется ввод данных!", , "DocFlow"
'            Continue = False
'        End If
        
    Case SAVE_REQUEST
  REM Write the edited column view entries back to the document
        For i = 0 To Ubound(Colprogname) Step 1
            
            
            If Colprogname(i) = "Quantity" And Not Isnumeric(Columnvalue(i)) Then
                Messagebox "!!!!!!!!!!"
                Exit Sub
            End If
            
            
            Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
        Next
    REM Save(force, createResponse, markRead)
        Call doc.Save(True, True, True)
        
    Case NEWENTRY_REQUEST
  REM Create document and create "Form" item
  REM Write column values to the new document
        Set doc = New NotesDocument(db)
        Call doc.ReplaceItemValue("Form", "GoodsForClaim")        
        For i = 0 To Ubound(Colprogname) Step 1
            Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
        Next
    REM Save(force, createResponse, markRead)
        Call doc.Save(True, True, True)
        
    End Select
End Sub
Medevic
NickProstoNick
Тебе по сути нужно обрабатывать только QUERY_REQUEST.
В обработке ты используешь свой метод ввода(workspace.Prompt(...)), поэтому нужно запретить переходить в встроенный режим редактирования. Для этого пишешь Continue = False после всех действий.
Типа так:
Цитата
Case QUERY_REQUEST:

If Colprogname(0) = "Comment" Then
....
End If
Continue = False
NickProstoNick
помогло smile.gif
yerke
Цитата(Medevic @ 28:08:2008 - 18:58) *
Тебе по сути нужно обрабатывать только QUERY_REQUEST.


дорогой Medevic
я позвольте задать ваш вопрос вам же (http://forum.codeby.net/topic4441.html?hl=Inviewedit)
можно ли юзать QUERY_REQUEST на 6.5.4?

если туда поставить print для проверки то
оно срабатывает
то есть можно да?


Medevic
Можно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.