先週、evaluate statement
( Evaluate ステートメント マクロのエラー) のエラーを解決する方法を尋ねました。
修正すると、同じ評価ステートメントで他のエラーが発生し、値が得られません。
私が持っているものと試したことを説明します。
テキスト計算の @DbLookup
このコードをテキストの計算に入れましたが、正常に動作します。
suc := @Trim(@Left(LlcPoliza;2));
_lkp := _lkp := @DbLookup("":"NoCache";"C1256EAD:00478951";"People2"; "D"+suc; "FullName");
@If( @IsError( _lkp ) ; " " ; _lkp );
@Name([CN];_lkp)
LlcPoliza
はドキュメント フィールド (doc.LlcPoliza
) であり、ドキュメントでは、たとえば値C2H2H2を持ちます。この式は、最初に値C2を与え、次にD+C2
People2
が誰であるかを調べて、私に人を与えます。それは正常に動作します。
クラス内のステートメント (@DbLookup) を評価する
クラス DirectorSucursal があります。
Class DirectorSucursal
Private m_branch As String
'Constructor class
Public Sub New (branch)
Dim subString As String
subString = Left(branch, 2)
me.m_branch = subString
End Sub
'Deleter Class
Public Sub Delete
End Sub
'Sub show the code about Suc
Public Sub GetCodSuc
MsgBox m_branch
End Sub
'Function get the name director
Public Function getNameDirector As String
Dim varResult As Variant
varResult = Evaluate({@DbLookup("":"NoCache";"C1256EAD:00478951";"People2"; "D} & m_branch & {"; "FullName)"})
getNameDirector = CStr( varResult(0) )
End Function
End Class
次に、ボタンで、次のようにフィールド doc.LlcPoliza(0) のパラメーターを使用して新しいオブジェクト DirectorSucursal をインスタンス化します。
Sub Click(Source As Button)
Dim director As New DirectorSucursal(doc.LlcPoliza(0))
director.GetCodSuc
director.getNameDirector
end Sub
フィールド
doc.LlcPoliza(0)
の値はC2H2H2です。GetCodSuc
値C2を表示しますが、関数は機能getNameDirector
しません。エラーが表示されます: 操作に失敗しました
クリックボタンでステートメント(@DbLookup)を評価する
私は同じことを試しましたが、クリックサブに入れました。
Sub Click(Source As Button)
Dim subString As String
subString = Left(doc.LlcPoliza(0), 2)
Dim eval As String
eval = Evaluate({@DbLookup("":"NoCache";"C1256EAD:00478951";"People2"; "D} & subString & {"; "FullName)"})
Msgbox eval
End Sub
フィールド
doc.LlcPoliza(0)
の値はC2H2H2です。しかし、うまくいきませんエラーが表示されます: 操作に失敗しました
私の質問は次のとおりです。私は何を間違っていますか? @Formula を使用したテキスト計算ではコードが正常に機能するのに、Lotusscript では正常に機能しないのはなぜですか?
ありがとう。
編集1:
Error Goto を追加し、クラス コードを変更し、計算テキストで @dblookup を変更しましたが、次のエラーが発生しました。
EVALUATE マクロのエラー