Domino 9 und frühere Versionen > ND7: Entwicklung
csv Datei importieren
Alperen15:
Hallo alle zusammen.....Ich habe ein paar csv Dateien. Jede Datei hat paar Zeilen( kundennummer, name usw.... )Ich habe eine Teilmaske erstellt mit den Felder die automatisch befüllt werden sollen. Eine Ansicht habe ich mir auch erstellt...Kundennummer, name usw...
Mein Agent den ich erstellt habe soll eine Datei öffnen den ersten Datensatz lesen dann die Kundennummer in der Ansicht suchen und falls die Kundennummer existier in der Ansicht das Dokument öffnen, die Felder befüllen und nächsten Datensatz lesen....was simples für euch aber für mich eine Herausforderung... bei set doc = doc.getfirstDocument bekomme ich schon eine Fehlermeldung, wahrscheinlich habe ich ncoh mehr....ich würde mcih echt freuen wenn ich paar Infos bekommen könnte
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim filenum As Integer, iZaehler As Integer, pos As Integer
Dim filename As String
Dim i As String
Dim cTrenn As String, cText As String, cDate As String, cError As String, cAusgabe As String
Dim cSelection As String
Dim dtCutOff As New NotesDateTime("31.12.1900")
Dim lDate As Long
Dim cpathName As String
Dim cFilename As String
Dim Pathname As String
Dim PathFileName As String
Dim csvFilename As String
Dim kundennummer As String
Dim oNeuDoc As NotesDocument
Set db=session.CurrentDatabase
Set view = db.GetView ("vwKundeKur" )
Set oHeute = New NotesDateTime(Now) ' *** Akt. Datum
pathName$ = "E:\TestKUR\Label\*"
cFilename$ = Dir$(pathName$ & "*.csv", 0)
iZaehler = 1
cTrenn = ";" ' *** Definition des Trennzeichens
Do While cFilename$ <> ""
If Isempty(cFilename$) Then
Exit Sub
End If
PathFileName = "E:\TestKUR\Label\" & cFilename$
i = i + cTrenn
iZaehler = iZaehler + 1
'lese erste zeile
fileNum% = Freefile()
Open PathFileName For Input As filenum
Seek filenum,1
Line Input #filenum, i
Call ReadFields(i) ' *** neuer Datensatz lesen
kundennummer = cImString(1) 'Kundennummer zwischenspeicher
cSelection = "FORM = ""maKundenetikett"" & doc.fdCustNo = kundennummer"
Set dc = db.Search ( cSelection , dtCutOff , 0 )
' **** Wenn Kundennummer in der Ansicht = Kundennummer aus der csv Datei dann... ***********
Set doc = doc.GetFirstDocument()
If Not doc Is Nothing Then
Call FillFields(doc,i)
On Error Goto ErrorPrint
Call doc.save(False,True)
End If
cFilename$ = Dir$()
Loop
EndeGut:
Close filenum
Print cText
Goto EndeAlles
ErrorPrint:
Resume Next
Print cError
EndeFileOpen:
Goto EndeAlles
EndeAlles:
Exit Sub
End Sub
klaussal:
--- Zitat ---set doc = doc.getfirstDocument bekomme ich schon eine Fehlermeldung
--- Ende Zitat ---
muss wohl heissen .. = namedeinerview.getfirst...
Vielleicht solltest du hier mit getdocumentbykey arbeiten.
Alperen15:
meinst du Set doc = vwKundeKur.getfirstdocument() ??
Alperen15:
a ja jetzt hab ichs moment mal debuggen wies jetzt aussieht
Alperen15:
also jetzt habe ich es mal so....ich mache es Schritt für Schritt wies sich auch für einen Anfänger gehört. Momentan liest der Agent alle Datensatz in der Datei stumpf durch. Laut debugger stimmt es auch so weit. Jetzt möchte ich in meine Ansicht die ich erstellt habe. Er soll den Kundennummer von der Datei nehmen schauen ob es die Kundennummer auch in der Ansicht gibt. Wenn ja dann fülle die Felder von der Datei in das Dokument.
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim filenum As Integer, iZaehler As Integer, pos As Integer
Dim filename As String
Dim i As String
Dim cTrenn As String, cText As String, cDate As String, cError As String, cAusgabe As String
Dim cSelection As String
Dim dtCutOff As New NotesDateTime("31.12.1900")
Dim lDate As Long
Dim cpathName As String
Dim cFilename As String
Dim Pathname As String
Dim PathFileName As String
Dim csvFilename As String
Dim kundennummer As String
Dim oNeuDoc As NotesDocument
Set db=session.CurrentDatabase
Set view = db.GetView ("vwKundeKur" )
Set oHeute = New NotesDateTime(Now) ' *** Akt. Datum
pathName$ = "E:\TestKUR\Label\*"
cFilename$ = Dir$(pathName$ & "*.csv", 0)
iZaehler = 1
cTrenn = ";" ' *** Definition des Trennzeichens
If Isempty(cFilename$) Then
Exit Sub
End If
PathFileName = "E:\TestKUR\Label\" & cFilename$
'lese erste zeile
fileNum% = Freefile()
Open PathFileName For Input As filenum
Seek filenum,1
Do Until Eof (filenum)
Line Input #filenum, i
If i <> "" Then
i = i + cTrenn
iZaehler = iZaehler + 1
Call ReadFields(i) ' *** neuer Datensatz lesen
End If
' **** Wenn Kundennummer in der Ansicht = Kundennummer aus der csv Datei dann... ***********
Loop
EndeGut:
Close filenum
Print cText
Goto EndeAlles
ErrorPrint:
Resume Next
Print cError
EndeFileOpen:
Goto EndeAlles
EndeAlles:
Exit Sub
End Sub
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln