0

「Illegal Parenthesized Reference: Items」エラーを発生させるエージェントに、次の lotusscript コード行を含めます。

Set tempObligor.Facilities.items(Cstr(facilitydoc.requestnum(0))) = tempFacility

Facilities.items は、オブジェクトのリストとして定義されています。

そのため、Notes 8.5 デザイナーによってエラーがスローされる理由がわかりません。

これが Notes 8.0.2 で問題なく機能したことも同様に奇妙です。

オブジェクトを構成するコードは次のとおりです。

何かアイデアがあれば教えてください。

すべての値を調べて一致を探す FOR ループを使用することで回避できると信じていますが、エラーが発生している理由がわからないため、バグが発生しています...

Dim tempObligor As Obligor 

'This line errs out - does not like () after .items 
Set tempObligor.Facilities.items(Cstr(facilitydoc.requestnum(0))) = tempFacility 

Class Obligor As CollectableObject 
        Public Facilities As SortableList         
End Class 

Class CollectableObject 
        ' STUB 
End Class 

Class SortableList 

        Public items List As CollectableObject 

        Private Sub Sort() 
                Dim uboundarray As Integer 
                Dim nextTag As String 
                Dim x As Integer 
                Dim sortedArray As Variant 

                Dim ArrayToSort() As Variant 

                uboundArray = 0 

                Forall elem In items 

                        NextTag = Listtag(elem) 
                        Redim Preserve ArrayToSort(uboundArray) 
                        ArrayToSort(uboundArray) = NextTag 


                        uboundArray = uboundArray + 1 
                End Forall 

                SortedArray = SortArray(ArrayToSort) 

                Dim TempList List As CollectableObject 
                For x = 0 To Ubound(SortedArray) 
                        Set TempList(SortedArray(x)) = items(SortedArray(x)) 
                Next 

                Erase items 

                Forall elem In TempList 
                        Set items(Listtag(elem)) = TempList(Listtag(elem)) 
                End Forall 

                Erase TempList 


        End Sub 

        Function SortArray(ArrayToSort) As Variant 
                Dim NumberOfElements As Integer 
                Dim temp As String 
                Dim x As Integer 
                Dim y As Integer 

                NumberOfElements = Ubound(ArrayToSort) 
                If NumberOfElements% = 0 Then 
                        SortArray = ArrayToSort 
                        Exit Function 
                End If 

                For x = 0 To (NumberOfElements) 
                        For y = 0 To ( NumberOfElements - x - 1) 

                                If Ucase$(ArrayToSort(y)) > Ucase$(ArrayToSort(y+1)) Then 

                                        temp = ArrayToSort(y) 
                                        ArrayToSort(y) = ArrayToSort(y+1) 
                                        ArrayToSort(y+1) = temp$ 

                                End If 

                        Next y 
                Next x 

                SortArray = ArrayToSort 

        End Function         

End Class 
4

1 に答える 1

2

コードを ScriptLibrary に貼り付けました。最初は同じエラーが発生しました。すると、クラス Obligor のクラス定義に「宣言の前に参照が表示されます」というタイプの別のエラーがあることに気付きました。あなたのクラス Obligor は CollectableObject 型です。Domino Designer には、CollectableObject が定義される前に参照されるという事実に問題があるようです。したがって、そのクラス定義の後にクラス Obligor を配置する必要があります。そうすれば、コードが機能するはずです (ただし、初期化の最初の 2 行を移動する必要がありました)。

于 2012-11-13T21:22:02.473 に答える