редактирование столбцов во View

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Доброго времени суток!
Подскажите, как можно реализовать редактирование столбцов во View.
Например чтоб при щелчке на определенном столбце в строке вида, этот столбец переходил в режим редактирования

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

вобщем мне надо провести диалог с пользователем и дать ему ввести строго ограениченые значения
 
А Б А Л Д Е Т Ь ! ! ! ! ! :))))
Похоже что оно :)
Буду разбираться :)
 
NickProstoNick
Но это только под винду, т.к. юзается API виндовский.
Что бы работало везде, можно на InViewEdit вызывать лотусный ws.Prompt.
Будет работать везде.
 
Согласен, но мне надо дать пользователю выбор значений, но не давать ему вносить их вручную.
Вот и бьюсь над этим
 
так.... очередной вопрос.... :blink:
При редактировании столца в виде светится поле для ввода...
Вопрос следующий.... можно ли программно изменить значение этого поля? чтоб в нем светилось то что выбрал пользователь?
Я же просто делаю изменения в документе... а в этом поле для редактирования светится старое значение до тех пор пока с него не уберешь курсор
 
аха.... все получается... в доке то что надо...но вот в самом поле - старое или пустое значение до момента пока не скроется поле для редактирования
 
Вот пример.

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

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

ну тогда ws.ViewRefresh

:blink: после этого клиент вообще вылетает с ошибкой
 

Вложения

  • tmp.JPG
    tmp.JPG
    6,1 КБ · Просмотры: 560
1. Что за ошибка?
2. Вообще, если всё делаешь правильно, то не надо потом решрешить, он сам обновляет view.
 
я совсем запутался :blink:
если не сложно... подскажите что не правильно
Код:
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
 
NickProstoNick
Тебе по сути нужно обрабатывать только QUERY_REQUEST.
В обработке ты используешь свой метод ввода(workspace.Prompt(...)), поэтому нужно запретить переходить в встроенный режим редактирования. Для этого пишешь Continue = False после всех действий.
Типа так:
Case QUERY_REQUEST:

If Colprogname(0) = "Comment" Then
....
End If
Continue = False
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab