私はlotusscriptでクラスを学習しています。この問題は解決方法がわからないことがわかりました。クラスを使用して値フィールドを変更する
フィールドを読み込むクラスがあります。このフィールドの値によって、クラスのメソッドを他に変更する必要があります。この方法は、私はフィールドが初期値「Borrador」とEstado
と呼ばれているフォームにStatus
コードクラス
%REM
Library c_LlamadaCandente
Created 28-nov-2016 by David Bernabe Palanco/ES/HPH
Description: Comments for Library
%END REM
Option Public
Option Declare
%REM
Class c_LlamadaCandente
Description: Comments for Class
%END REM
Class LlamadaCandente
' Declare the parameters
Private m_datStart As Variant
Private m_datFinal As Variant
Private m_strClaim As String
Private m_strGroupClaim As String
Private m_strStatus As String
' Constructor
Public Sub New (dateStart, group, status)
me.m_datStart = dateStart
me.m_strGroupClaim = group
me.m_strStatus = status
End Sub
' Calculate the person who has to answer the form
Public Function Responsable As String
Dim group As String
group = me.m_strGroupClaim
Select Case group
Case "Autos 1"
Responsable = "user 1"
Case "Autos 2"
Responsable = "user 2"
Case "Particulares 1"
Responsable = "user 3"
Case "Particulares 2"
Responsable = "user 4"
Case "Empresas 1"
Responsable = "user 5"
Case "Empresas 2"
Responsable = "user 6"
Case "Personales"
Responsable = "user 7"
Case "Lesiones"
Responsable = "user 8"
Case Else
Responsable = "user 9"
End Select
End Function
' Change the status field
Public Function Status As String
Select Case me.m_strStatus
Case "Borrador"
Status = "Pendiente"
Case "Pendiente"
Status = "Finalizado"
Case Else
Status = "Sin estado"
End Select
End Function
End Class
フォーム
であり、このコード
と湖底バトムコード
Sub Click(Source As Button)
' We create new object from Llamadas Candentes and then we instanciate it with the parametres
Dim llamada As New LlamadaCandente(doc.FechaSolicitud(0), doc.LlcGrupo(0), doc.Estado(0))
llamada.Status
Call uidoc.Save
Call uidoc.Close
End Sub
問題
私はllamada.Status
を呼び出すと、私は本当にdoc.Estado
を変更したいと考えていますが、それは動作しません。だから、私はbuttomをクリックしてフィールドの新しい値は "Pendiente"を持っていますが、フォームが閉じているときは、値として "Borrador"が始まります。
いずれかをお勧めしますか?
おかげでたくさん。 '.ReplaceItemValue'と' .FieldSetText'を使うと不正なかっこでエラーが出るので、私は 'doc.Estado = llamada.Status'を使っています。 – David
コールコマンドを使用しないと不正なカッコエラーが発生します。 _doc.ReplaceItemValue "Status"、llamada.Status_または_Call doc.ReplaceItemValue( "Status"、llamada.Status)_ –
また、 'doc.Estado = llamada.Status()'を使うこともできます。 'Public Function Status As String 'を' Public Property Status as String'に変更してから 'doc.Estado = llamada.Status'を使うと、関数ではなくプロパティのように扱われるためです。 – JSmart523