не удобства Inviewedit

yerke

Well-known member
28.08.2007
392
0
#1
привет всем
возникла необходимость юзать событие Inviewedit вьюшки
на вьюшке токлько один едитабл столбец

как программировать вроде разобрался (валидация и сохранение итп)

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

вопрос можно ли сделать так чтобы
1) едитабл столбец был всегда в режиме редактирования
2) и какие Short cut-ы существуют, которые отвечали бы за переход определенного рекорда в едит моуд.

спасибо.
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Вообще F2 (как и в винде) переводит в edit моде, но только первый editable столбец.
И, кмк, как раз надо делать не двойной, а одинарный клик :rolleyes:
 

yerke

Well-known member
28.08.2007
392
0
#3
Вообще F2 (как и в винде) переводит в edit моде, но только первый editable столбец.
И, кмк, как раз надо делать не двойной, а одинарный клик
опять я в тупике
хелп плиз
1) есть главная форма, оттуда вызывается notesuiworkspace.DialogBox (см. рис.)
2) в форму DialogBox-а вставлен ебедед вью with show sigle category и с одним едитабл столбцом
если нажать на клавишу F2 на одном из рекордов ебедед вью, то оно не срабатывает, то есть рекорд не переходит на едит моуд, тока по клику можно переидти в режим редактирования (а на самом вью F2 работает прекрасно)
3) при переходе рекорда в едит моуд вызывается notesuiworkspace.Prompt (см. рис.)

как заставит F2 работать в ембедит вьюше, который находится в диалог боксе?
 

Вложения

Omh

Lotus team
04.07.2007
2 210
1
#4
Проверил только что: в ws.prompt эта штука не работает.
Работает только если просто открыто view.
Переводит в режим редактирования первый editable столбец в записи на которой стоит курсор.
При это перемещает к ней указатель мыши :)
Lotus - 7.0.3
 

yerke

Well-known member
28.08.2007
392
0
#5
кажется вы меня не поняли
Проверил только что: в ws.prompt эта штука не работает.
F2 должен работать на диалог боксе, куда вставлен вью
а ws.prompt это уже результат обработки F2


Переводит в режим редактирования первый editable столбец в записи на которой стоит курсор.
с этим согласен
 

Omh

Lotus team
04.07.2007
2 210
1
#6
Попутал, хотел сказать, что не работает в ws.PickListCollection.
Короче, в модальных окнах не работает :)
 
A

Anonimous

#8
У меня несколько другой вопрос по неудоюствам редактируемой встроееной вьюшки. Есть документ, в нем таблица типа Tabbed, на одной вкладке таблицы субформа, на субформе встроенная вьюха с одним редактируемым столбцом. Все хорошо, столбец редактируется, изменения сохраняются, только вот сам документ виснет, редактировать его нельзя, на кнопки не понажимаешь, на другую вкладку таблицы не переключиться. Приходится документ закрывать. Это нормально? Кто-нибудь обходил такую проблему?
Вот что у меня во вьюхе.
Options
Option Public
Option Explicit

Declarations

Const QUERY_REQUEST = 1
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim sCaret As String
Dim sColValue As String
Dim docParent As NotesDocument
Dim stReplace As Variant


Sub Postopen(Source As Notesuiview)
Dim ws As New NotesUIWorkspace
If Not ws.CurrentDocument Is Nothing Then Set docParent = ws.CurrentDocument.Document
End Sub

Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
Const QUERY_REQUEST = 1
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4

Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument, docOrder As NotesDocument
Dim sCaret As String
Dim sColValue As String

Set docOrder = ws.CurrentDocument.Document

Set db = session.CurrentDatabase
sCaret = Source.CaretNoteID

Set doc = db.GetDocumentByID(sCaret)
'Редактирование в представлении
Select Case Requesttype

Case VALIDATE_REQUEST
'Проверка корректного ввода Количества. Выход из модуля в случае возникновения ошибки
Dim stValue As String
stValue=ColumnValue(0)


For l=1 To Len(stValue)
If Not Lcase$(Mid$(stValue, l, 1)) Like "[0-9]" Then
Msgbox "Неверно указано количество! Строка " & i, 0+48 , "Контроль заполнения документа"
doc.ReplaceItemValue "Error", "1"
doc.Save True, True, True
Exit Sub
End If
Next

stReplace = stValue


Case SAVE_REQUEST

Dim stMTRProperties As String, stMTRNewProperties As String
For i = 0 To Ubound(Colprogname) Step 1

If Colprogname(i) ="$Quantity" Then


ColumnValue(i) = Cstr(stReplace)
stMTRProperties=doc.GetItemValue("NameMTR")(0)

stMTRNewProperties=Strtoken(stMTRProperties,"|",1) & "|" & Strtoken(stMTRProperties,"|",2) & "|" & Strtoken(stMTRProperties,"|",3) & "|" & Strtoken(stMTRProperties,"|",4) & "|" & stReplace & "|" & Strtoken(stMTRProperties,"|",6)
ColumnValue(i) = Cstr(stReplace)
doc.ReplaceItemValue "Error", ""
doc.ReplaceItemValue "QuantityMTR",ColumnValue(i)
doc.ReplaceItemValue "NameMTR",stMTRNewProperties
End If
Next
doc.Save True, True, True

Case NEWENTRY_REQUEST

End Select
End Sub
 
A

Anonimous

#9
Ай, оплошал, написал

doc.Save True, True, True

Дело в этом. Написал по-нормальному - все нормально :)