Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: MarkusL am 25.08.11 - 15:04:06
-
Hallo zusammen,
ich weiß, dass dieses Thema bereits mehrfach hier diskutiert wurde. Aber trotz Suche und Designer-Hilfe stehe ich jetzt ratlos da.
Ich möchte gerne eine bestehende Textdatei komplett auslesen und in ein bestehendes Masken-Feld einfügen.
Daher habe ich mir einen Button erstellt und folgendes Script anhand dieses Forums und der Hilfe erstellt:
Sub Initialize
' Open a file, print it, and close the file.
Dim fileNum As Integer
Dim text As String
Dim source As NotesUIDocument
fileNum% = Freefile()
Open "d:\user.txt" For Input As fileNum%
Do Until Eof(1)
'Hier erfolgt die weitere Verarbeitung, bis das Ende der Datei erreicht ist.
Line Input #1, text$
Print text$
Call source.FieldSetText("LDAP1",text$)
Loop
Close fileNum%
End Sub
In der Zeile Call source.FieldSetText("LDAP1",text$) kommt die Fehlermeldung, dass eine Objekt-Variable nicht gesetzt ist. text$ kann es per Print-Befehl drucken und LDAP1 heißt das Feld, in das es schreiben soll.
Wo liegt der Fehler?
Wenn ich fertig bin, soll es die gesamte Datei Zeile für Zeile durchlaufen und das Feld LDAP1 immer weiter ergänzen.
Gruß Markus
-
wo belegst du Source?
-
Laut Code nirgendwo...
-
Danke, das war es.
-
Hallo zusammen,
bin am Wochenende nochmal in die Designerhilfe gegangen und habe ein nützliches Script gefunden. Hiermit habe ich mein Problem gelöst. Ich wollte ja eine kleine Textdatei komplett über einen Button in ein Feld in einer Maske einlesen.
Hier der Code dafür:
Sub Click(Source As Button)
Const PATH = "d:\test.txt" 'Hier den Pfad eingeben
Const FIELD = "Test1" 'Hier das Feld in der Maske eingeben
Dim workspace As New NotesUIWorkspace
Dim doc As NotesUIDocument
Dim fileNum As Integer
Dim textalt As String
Dim text As String
Set doc = workspace.CurrentDocument
fileNum% = Freefile()
Open PATH For Input As fileNum%
Do Until Eof(1)
'Hier erfolgt die weitere Verarbeitung, bis das Ende der Datei erreicht ist.
Line Input #1, text$
textalt = doc.FieldGetText( FIELD )
Call doc.FieldSetText(FIELD,Cstr(textalt + text$ + Chr(13) & Chr(10)))
Loop
Close fileNum%
End Sub
-
... kleiner Hinweis zur Verbesserung der Deklaration deiner Objekte:
Dim doc As NotesUIDocument
Als doc verstehen die meisten implizit ein Backend-Dokument, Frontend wird meistens mit uidoc benannt. Das macht den Code sehr viel schneller lesbar ;)
Toni