не удобства Inviewedit

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

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    привет всем
    возникла необходимость юзать событие Inviewedit вьюшки
    на вьюшке токлько один едитабл столбец

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

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

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

    спасибо.
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Вообще F2 (как и в винде) переводит в edit моде, но только первый editable столбец.
    И, кмк, как раз надо делать не двойной, а одинарный клик :rolleyes:
     
  3. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    опять я в тупике
    хелп плиз
    1) есть главная форма, оттуда вызывается notesuiworkspace.DialogBox (см. рис.)
    2) в форму DialogBox-а вставлен ебедед вью with show sigle category и с одним едитабл столбцом
    если нажать на клавишу F2 на одном из рекордов ебедед вью, то оно не срабатывает, то есть рекорд не переходит на едит моуд, тока по клику можно переидти в режим редактирования (а на самом вью F2 работает прекрасно)
    3) при переходе рекорда в едит моуд вызывается notesuiworkspace.Prompt (см. рис.)

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

    Вложения:

    • Untitled_1.gif
      Untitled_1.gif
      Размер файла:
      44,2 КБ
      Просмотров:
      73
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Проверил только что: в ws.prompt эта штука не работает.
    Работает только если просто открыто view.
    Переводит в режим редактирования первый editable столбец в записи на которой стоит курсор.
    При это перемещает к ней указатель мыши :)
    Lotus - 7.0.3
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    кажется вы меня не поняли
    F2 должен работать на диалог боксе, куда вставлен вью
    а ws.prompt это уже результат обработки F2


    с этим согласен
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Попутал, хотел сказать, что не работает в ws.PickListCollection.
    Короче, в модальных окнах не работает :)
     
  7. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    а можно как то отловить нажатие определннных клавиш и обработать их события в модальных окнах лотуса
     
  8. Anonimous

    Anonimous Well-Known Member

    Регистрация:
    15 июн 2012
    Сообщения:
    120
    Симпатии:
    0
    У меня несколько другой вопрос по неудоюствам редактируемой встроееной вьюшки. Есть документ, в нем таблица типа 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
     
  9. Anonimous

    Anonimous Well-Known Member

    Регистрация:
    15 июн 2012
    Сообщения:
    120
    Симпатии:
    0
    Ай, оплошал, написал

    doc.Save True, True, True

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

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