Hallo allerseits,
ich habe folgendes Problem:
ich will an ein Java Urlaubsapplet (jnotes), Daten übergeben.
Diese Daten können größer 64k werden.
Dazu habe ich im postopen event eines Dokumentes folgendes Skript eingefügt:
Sub Postopen(Source As Notesuidocument)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim appletview As NotesView
Dim doc As NotesDocument
Dim UserName As New NotesName(session.UserName)
Dim uebergabe (0 To 11) As Variant
Dim abt As Variant
Dim abtneu As Variant
Dim item As NotesItem
Dim dateTime As NotesDateTime
Dim value As Variant
Dim uiwork As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim note As NotesDocument
Dim v As Integer
Dim accessDate As Variant
Set db = session.CurrentDatabase
Set uidoc = uiwork.currentdocument
Set note = uidoc.document
Set view = db.GetView( "VData" )
Set appletView = db.GetView("VApplet")
Set doc = view.GetFirstDocument
i = 0
While Not(doc Is Nothing)
v = 0
Forall x In doc.HolidayType_T
abtneu = doc.Department_T(0)
If abt = abtneu Then
Set item = doc.GetFirstItem( "end_T" )
Set dateTime = New NotesDateTime( "" )
value = item.Values
dateTime.LSLocalTime = value( v )
dateTime.AdjustDay( 1 )
uebergabe(i) = uebergabe(i) + doc.HolidayType_T(v) + ";" + Cstr(doc.Start_T(v))+ ";" + Cstr(dateTime.DateOnly) + ";" + " " + doc.LastName_T(0) +","+" "+ Left(doc.FirstName_T(0),1) + ". "+";"
If doc.FMailed_T(0) ="0" Then
uebergabe(i) = uebergabe(i) +"geplant" +";" + Cstr(doc.Created) + "|"
Elseif doc.FMailed_T(0)= "1" Then
uebergabe(i) = uebergabe(i) +"beantragt" +";"+ Cstr(doc.Created) + "|"
Else
uebergabe(i) = uebergabe(i) +"genehmigt" +";" + Cstr(doc.Created) + "|"
End If
'If doc.FMailed_T(0) ="0" Then
' uebergabe(i) = uebergabe(i) +"geplant"+ "|"
'Elseif doc.FMailed_T(0)= "1" Then
' uebergabe(i) = uebergabe(i) +"beantragt" + "|"
'Else
' uebergabe(i) = uebergabe(i) +"genehmigt" +"|"
'End If
Else
Set item = doc.GetFirstItem( "end_T" )
Set dateTime = New NotesDateTime( "" )
value = item.Values
dateTime.LSLocalTime = value( v )
dateTime.AdjustDay( 1 )
If doc.Department_T(0) ="" Then
uebergabe(i) = uebergabe(i) + "abt"+";" + "01.01.2001"+";" + "01.01.2001"+";"+"ohne Fachbereich" +";" + "1" + ";"+"|"
uebergabe(i) = uebergabe(i) + doc.HolidayType_T(v) + ";" + Cstr(doc.Start_T(v))+ ";" + Cstr(dateTime.DateOnly) + ";" + " " + doc.LastName_T(0) +","+" "+ Left(doc.FirstName_T(0),1) + ". "+";"
If doc.FMailed_T(0) ="0" Then
uebergabe(i) = uebergabe(i) +"geplant" +";" + Cstr(doc.Created) + "|"
Elseif doc.FMailed_T(0)= "1" Then
uebergabe(i) = uebergabe(i) +"beantragt" +";"+ Cstr(doc.Created) + "|"
Else
uebergabe(i) = uebergabe(i) +"genehmigt" +";" + Cstr(doc.Created) + "|"
End If
'If doc.FMailed_T(0) ="0" Then
' uebergabe(i) = uebergabe(i) +"geplant"+ "|"
'Elseif doc.FMailed_T(0)= "1" Then
' uebergabe(i) = uebergabe(i) +"beantragt" + "|"
'Else
' uebergabe(i) = uebergabe(i) +"genehmigt" +"|"
'End If
Else
uebergabe(i) = uebergabe(i) + "abt"+";" + "01.01.2001"+";" + "01.01.2001"+";"+doc.Department_T(0) +";" + "1" + ";"+"|"
uebergabe(i) = uebergabe(i) + doc.HolidayType_T(v) + ";" + Cstr(doc.Start_T(v))+ ";" + Cstr(dateTime.DateOnly) + ";" + " " + doc.LastName_T(0) +","+" "+ Left(doc.FirstName_T(0),1) + ". "+";"
If doc.FMailed_T(0) ="0" Then
uebergabe(i) = uebergabe(i) +"geplant" +";" + Cstr(doc.Created) + "|"
Elseif doc.FMailed_T(0)= "1" Then
uebergabe(i) = uebergabe(i) +"beantragt" +";"+ Cstr(doc.Created) + "|"
Else
uebergabe(i) = uebergabe(i) +"genehmigt" +";" + Cstr(doc.Created) + "|"
End If
'If doc.FMailed_T(0) ="0" Then
' uebergabe(i) = uebergabe(i) +"geplant"+ "|"
'Elseif doc.FMailed_T(0)= "1" Then
' uebergabe(i) = uebergabe(i) +"beantragt" + "|"
'Else
' uebergabe(i) = uebergabe(i) +"genehmigt" +"|"
'End If
End If
End If
abt = abtneu
v=v+1
If Len(uebergabe(i)) >= 10000 Then
i=i+1
End If
End Forall
Set doc = view.GetNextDocument(doc)
Wend
'Wert den Feldern übergeben
note.appletdata_1 = uebergabe(0)
note.appletdata_2 = uebergabe(1)
note.appletdata_3 = uebergabe(2)
note.appletdata_4 = uebergabe(3)
note.appletdata_5 = uebergabe(4)
note.appletdata_6 = uebergabe(5)
note.appletdata_7 = uebergabe(6)
note.appletdata_8 = uebergabe(7)
note.appletdata_9 = uebergabe(
note.appletdata_10 = uebergabe(9)
note.appletdata_11 = uebergabe(10)
note.appletdata_12 = uebergabe(11)
note.letzter_Zugriff = note.LastAccessed
note.save True, True appletView.refresh
source.refresh
End Sub
in der Zeile des Speicherns kommt der Fehler 64k...
die einzelnen Felder werden per dbcolumn hintereinander ausgelesen. Um diese auslesen zu können muss das Dokument gespeichert werden. Leider kommt dann halt der Fehler.
Alle Felder stehen in einem neuen Absatz und sind vom Typ "Text"
Die begrenzung auf 10000 ist dazu da um jedes Feld zu begrenzen, leider bringt das nicht soviel wie gehofft.
Kann jemand den Fehler erkennen, mir fällt leider nichts mehr ein.
Vielen dank im Voraus,
Micha