S
Sch
Есть форма FTtype и связанный с ней view - FTypeView
Хочу проверять содержимое при выходе из поля FTType после редактирования,
и если в view-е по данному полю уже есть такое значение - то заменять его на значение до редактирования.
Все как бы работает, Но :
при замене на запомненное значение Call doc.ReplaceItemValue("FTType", FTTypeTemp)
Он его не запоминает в поле, хотя значения правильные, это видно по MessageBox тестовому...
В чем дело, и как это сделать ?
У формы :
_______________________
У поля FTType
___________ ' check Type for existing
_______________________
То есть я запоминаю содержимое поля - до редактирования его в переменной FTTypeTemp.
После ввода пользователем в поле нового значения, в Exiting я проверяю это поле в определенном View на уникальность. Не ввели ли значения, которое уже есть в базе в этом поле ?
Статус этого положения записывается в переменную flag.
Ну и когда она true - я хочу восстановить содержимое поля до ввода. Вставить в него старое, запомненное значение. Бывшее до редактирования.
If flag = True Then
Messagebox ("Этот тип "FTTypeA" уже присутствует")
Call doc.ReplaceItemValue("FTType", FTTypeTemp)
End If
Ну и он не вставляет. Оставляет тем же, что было после редактирования-ввода.
Посоветовали поставить Refresh после Call doc.ReplaceItemValue("FTType", FTTypeTemp)
Ничего не дало.
_____________________
Еще такой вопрос : Как вывести в колонке View-а содержимое поля типа RichText ?
Ставлю в ней следующую формулу :
@Left(@Text(FTComment);10)
Содержимое, тем не менее, не отображает.
Как и просто @Text(FTComment)
Хочу проверять содержимое при выходе из поля FTType после редактирования,
и если в view-е по данному полю уже есть такое значение - то заменять его на значение до редактирования.
Все как бы работает, Но :
при замене на запомненное значение Call doc.ReplaceItemValue("FTType", FTTypeTemp)
Он его не запоминает в поле, хотя значения правильные, это видно по MessageBox тестовому...
В чем дело, и как это сделать ?
У формы :
_______________________
Код:
Sub Postopen(Source As Notesuidocument)
FTTypeTemp=GetFieldByName("FTType",0)
Messagebox("Open:"+FTTypeTemp)
End Sub
У поля FTType
___________ ' check Type for existing
Код:
Sub Exiting(Source As Field)
Dim FTTypeA As String
Dim flag As Boolean
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView("FTypeView")
Set doc = view.GetFirstDocument
'''' FTTypeA = doc.GetItemValue("FTType")(0)
FTTypeA =GetFieldByName("FTType",0)
If FTTypeA FTTypeTemp Then
flag = False
If doc.HasItem("FTType") Then
While Not(doc Is Nothing) And flagTrue
Forall FTTypeI In doc.GetItemValue("FTType")
If FTTypeI = FTTypeA Then
flag = True
End If
End Forall
Set doc = view.GetNextDocument(doc)
Wend
If flag = True Then
Messagebox ("Этот тип "FTTypeA" уже присутствует")
Call doc.ReplaceItemValue("FTType", FTTypeTemp)
End If
End If
End If
End Sub
в Script Library :
Function GetFieldByName (Nam As String, Pos As Integer) As Variant
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
GetFieldByName = ""
If Not ws.CurrentDocument.IsNewDoc Then ' ?
Set doc = ws.CurrentDocument.Document
If Pos < 0 Then
GetFieldByName = doc.GetItemValue(Nam)
Else
GetFieldByName = doc.GetItemValue(Nam)(Pos)
End If
End If
End Function
То есть я запоминаю содержимое поля - до редактирования его в переменной FTTypeTemp.
После ввода пользователем в поле нового значения, в Exiting я проверяю это поле в определенном View на уникальность. Не ввели ли значения, которое уже есть в базе в этом поле ?
Статус этого положения записывается в переменную flag.
Ну и когда она true - я хочу восстановить содержимое поля до ввода. Вставить в него старое, запомненное значение. Бывшее до редактирования.
If flag = True Then
Messagebox ("Этот тип "FTTypeA" уже присутствует")
Call doc.ReplaceItemValue("FTType", FTTypeTemp)
End If
Ну и он не вставляет. Оставляет тем же, что было после редактирования-ввода.
Посоветовали поставить Refresh после Call doc.ReplaceItemValue("FTType", FTTypeTemp)
Ничего не дало.
_____________________
Еще такой вопрос : Как вывести в колонке View-а содержимое поля типа RichText ?
Ставлю в ней следующую формулу :
@Left(@Text(FTComment);10)
Содержимое, тем не менее, не отображает.
Как и просто @Text(FTComment)