Autor Thema: csv Datei importieren  (Gelesen 10995 mal)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #20 am: 06.10.10 - 16:43:23 »
so mein fehler war in der selection...
Das sagten wir ja bereits - und zwar in zwei Etappen des Threads! Das hätte Dir auch der Debugger gesagt, womit der Thread an sich obsolet geworden wäre.

... wegen den anderen fehler kümmer ich mich selber drum keine lust auf solche aussagen.
Nun stellt sich die Frage, was Du in Zukunft von der AtNotes-Community überhaupt noch erwartest bzw. überhaupt noch erwarten kannst:
Wenn ich Deine obige, vor Rechtschreib-, Grammatik- und Ausdruckfehlern strotzende Pöbelei lese, dann kann ich nur davon ausgehen, dass wir Deine Arbeit machen sollen, Du aber nicht selber an Dir arbeiten willst.

Abschliessend also: Glückwunsch zum Eigentor!

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #21 am: 07.10.10 - 14:03:15 »
naja ich habe mir mal den ablauf skizziert wie ich es ja haben möchte durch die skizze ist mir einiges klar geworden. also Datei wird geöffnet und Satz für Satz gelesen (funkioniert) kundennummer ist mein key. Mit diesem Key gehe ich in meine ansicht und suche mir die Kundennummer raus bis ich ihn gefunden habe. WEnn ich ihn gefunden werden die felder befüllt.
(Nein Ihr sollt nicht meine Arbeit tun ;-) ich brauche zwar etwas länger bis ich verstehe was ihr meint, aber wenn ich es verstanden habe hilft es mir auch) und die Funktion FillFieds komme ich garnet der debugger läuft einfach durch liest alle sätze dann springt er raus...

Do Until Eof (filenum)                                 
      Line Input #filenum, i
      If i = "" Then
         Goto EndeAlles         
      End If
      
      i = i + cTrenn
      iZaehler = iZaehler + 1                            ' *** Datensatzzähler
      
      ' **********  Einlesen des csv - Datensatzes  **************************
      On Error Goto ErrorPrint
      Call ReadFields(i)                                             ' *** neuer Datensatz lesen   
      
      kundennummer = cImString(1)                      '*** Kundennummer zwischenspeichern
      ' ************* Document Selection - Alle Documente in der DB werden nach Kundennummer durchsucht - Anführungszeichen der Selection beachten !
      cSelection = "FORM = ""maKundenetikett"" & fdCustNo =  """+kundennummer+""""
      Set dc = db.Search ( cSelection , dtCutOff , 0 )      
      ' **************
      
      Set doc = view.getFirstDocument
      If kundennummer <> doc.fdCustNo(0) Then
         Set doc = view.GetNextDocument(doc)      
      Else   
         Call FillFields(doc,i)  
         Call doc.save(False,True)   
      End If
NextEntry:         
      Loop '  Until Eof (filenum)   **** Neuen csv - Datensatz einlesen

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #22 am: 07.10.10 - 14:06:16 »
ich glaube das ist doppelt gemopellt weil ich habe die selektion zum einen die If-Abfrage sieht nach wiederspruch aus, weil wenn ich selektiere ist die If Abfrage überflüssig....stimmts?!?

 cSelection = "FORM = ""maKundenetikett"" & fdCustNo =  """+kundennummer+""""
      Set dc = db.Search ( cSelection , dtCutOff , 0 )     
      ' **************
     
      Set doc = view.getFirstDocument
      If kundennummer <> doc.fdCustNo(0) Then

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #23 am: 07.10.10 - 14:44:15 »
.
« Letzte Änderung: 07.10.10 - 14:52:20 von Alperen15 »

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: csv Datei importieren
« Antwort #24 am: 07.10.10 - 15:27:53 »
ich glaube das ist doppelt gemopellt weil ich habe die selektion zum einen die If-Abfrage sieht nach wiederspruch aus, weil wenn ich selektiere ist die If Abfrage überflüssig....stimmts?!?

... und das Ganze bedeutet in verständlichem Deutsch was?


Ich habe jetzt zwar nicht den ganzen Thread durchgearbeitet, dazu fehlt mir momentan die Zeit, aber folgendes ist mit aufgefallen.

Du durchsuchst deine Datenbank mit db.Search nach einer bestimmten Kundennummer und erhälts dann das Ergebnis in einer NotesDocumentCollection.

Set dc = db.Search ( cSelection , dtCutOff , 0 ) 

Aber zum evt. Einslesen holst du dir das erste Dokument einer Ansicht.

Set doc = view.getFirstDocument

Das kann irgend eins sein und dann wunderst du dich, dass er FillFields nicht ausführt.

Das Ganze passt hinten und vorne nicht zusammen.

Ganz grob muss das so aussehen:
...
Set dc = db.Search ( cSelection , dtCutOff , 0 )
If dc.Count > 0 then  'Nachfolgender Code nur ausführen wenn min. ein Dok. gefunden wurde
  Set doc = dc.GetFirstDocument
  While Not (doc Is Nothing)
    Call FillFields(doc,i)   
    Call doc.save(False,True)
    Set doc = dc.GetNextDocument(doc)
  Wend
End If
...

Das Ganze erhebt aber keinen Anspruch auf Vollständigkeit und soll und kann nur als Denkanstoss dienen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #25 am: 07.10.10 - 15:33:48 »
Hallo,

Auch noch etwas von meiner Seite.

Wenn es nur um die in der betreffenden Ansicht dargestellten Dokumente geht, warum dann mit dem Db.Search arbeiten.

Man koennten die Ansicht doch auch nach der Kundennummer sortieren und anschliessend mit
view.GetAllDocumentsByKey() arbeiten.

Ich glaube auch, dass diese Option bereits vorher schon mal angesprochen wurde und aus meiner Sicht kristallisiert sich immer mehr heraus, dass diese Variante hier sehr gut hineinpassen wuerde.

Andreas

klaussal

  • Gast
Re: csv Datei importieren
« Antwort #26 am: 07.10.10 - 15:51:28 »
Zitat
Ich glaube auch, dass diese Option bereits vorher schon mal angesprochen wurde und aus meiner Sicht kristallisiert sich immer mehr heraus, dass diese Variante hier sehr gut hineinpassen wuerde.

Danke für die Blumen  :)

Siehe #1.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #27 am: 07.10.10 - 16:06:46 »
Danke für die Blumen  :)

Siehe #1.

Ich habe eher Mitleid, Klaus - mit Dir und vielen anderen: Es gibt hier so viele Dinge, die bereits mehrfach in diesem und auch in den Vorgänger-Threads genannt wurden, aber bisher einfach ignoriert werden.
Der immanent wichtige Debugger wurde ja auch schon so oft genannt, aber bisher noch immer nicht richtig benutzt. Fast alle Fragen dieses Threads hätten sich sonst von selbst erledigt.

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #28 am: 08.10.10 - 09:57:45 »
Guten morgen und vielen Dank. momentan sieht es so aus ich habe zwei schleifen gemacht. Die 1.Schleife liest alle Zeilen in der Datei durch. Beim lesen wird die Kundennumemr abgespeichert. Dann gehe ich in meine Ansicht nehme das erste dokument und speicher mir davon die Kundennummer ab. Dann kommt die 2.Schleife ins Spiel....vergleiche mir die beiden Kundennummer falls sie identlisch sein sollten, dann fülleFelder. Ansonsten öffne das nächste doukement speicher die kundennumer ab und vergleiche solange bist sie identisch sind
 
Das Problem ist meine do while abfrage und if abfrage(sind widersprüchlich) wo nach könnte ich denn die do while abfrage machen?

Open PathFileName For Input As filenum       
   Seek fileNum,1   
   On Error Goto ErrorPrint
   
   Do Until Eof (filenum)                                 
      Line Input #filenum, i
      If i = "" Then
         Goto EndeAlles         
      End If
      
      i = i + cTrenn
      iZaehler = iZaehler + 1                            ' *** Datensatzzähler
      
      ' **********  Einlesen des csv - Datensatzes  **************************
      On Error Goto ErrorPrint
      Call ReadFields(i)                                             ' *** neuer Datensatz lesen   
      
      kundennummer = cImString(1)                      '*** Kundennummer zwischenspeichern
      ' ************* Document Selection - Alle Documente in der DB werden nach Kundennummer durchsucht - Anführungszeichen der Selection beachten !
      'cSelection = "FORM = ""maKundenetikett"" & fdCustNo =  """+kundennummer+""""
      'Set dc = db.Search ( cSelection , dtCutOff , 0 )      
      ' **************
      
      Set doc2 = view.getFirstDocument
      tmpKundennr = doc2.fdCustNo(0)
      
      Do While kundennummer <> tmpKundennr
         If kundennummer = tmpKundennr Then

            Call FillFields(doc,i)   
            Call doc.save(False,True)
            Goto NextEntry
         End If
         Set doc2 = view.GetNextDocument(doc2)
         tmpKundennr = doc2.fdCustNo(0)
      Loop
      
NextEntry:         
      Loop '  Until Eof (filenum)   **** Neuen csv - Datensatz einlesen

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: csv Datei importieren
« Antwort #29 am: 08.10.10 - 10:04:13 »
Ich geb's auf. Wenn du nicht liest was man dir schreibt und die Vorschläge ansatzweise umsetzt, dann ist dir nicht zu helfen.

Axel 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: csv Datei importieren
« Antwort #30 am: 08.10.10 - 10:05:28 »
*plonk*
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #31 am: 08.10.10 - 11:41:30 »
beim ersten lauf ist mein kundennummer befüllt aber mein key nicht fällt euch da beim ersten blick was auf, was ich übersehen habe?

Open PathFileName For Input As filenum       
   Seek fileNum,1   
   On Error Goto ErrorPrint
   
   Do Until Eof (filenum)                                 
      Line Input #filenum, i
      If i = "" Then
         Goto EndeAlles         
      End If
      
      i = i + cTrenn
      iZaehler = iZaehler + 1                            ' *** Datensatzzähler
      
      ' **********  Einlesen des csv - Datensatzes  **************************
      On Error Goto ErrorPrint
      Call ReadFields(i)                                             ' *** neuer Datensatz lesen   
      
      kundennummer = cImString(1)                      '*** Kundennummer zwischenspeichern
      
      Set vdoc = view.GetDocumentByKey(kundennummer) <-------vdoc ist laut debugger leer
      While Not(vdoc Is Nothing)
         Call FillFields(vdoc,i)   
         Call vdoc.save(False,True)
         Set vdoc = dc.GetNextDocument(vdoc)
         kundennummer = cImString(1)
         Set vdoc = view.GetDocumentByKey(kundennummer)
         Goto NextEntry
      Wend

NextEntry:         
      Loop '  Until Eof (filenum)   **** Neuen csv - Datensatz einlesen

klaussal

  • Gast
Re: csv Datei importieren
« Antwort #32 am: 08.10.10 - 11:50:57 »
Also ich geb's auch dran:

warum 2xmal getdocumentbykey ?

Wenn vdoc leer ist, dann gibt's den Kunden wohl nicht.

Anscheinend fehlt Dir wirklich jegliches Verständnis für das, was da abgeht.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #33 am: 08.10.10 - 12:06:04 »
Hallo,

Und die Ansicht, in der gesucht wird ist auch nach der Kundennummer sortiert!
Und was passiert, wenn die Kundennummer mehrfach vorkommt?


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #34 am: 08.10.10 - 12:39:14 »
Mein einziger Beitrag zu diesem Thema ist ein gut gemeinter Rat:

Mach Dir Gedanken darüber, was Du von dem Script erwartest. Schreib es Dir evtl. sogar im Klartext auf (Lese Datensatz, Teile Datensatz in Felder auf, Hole Kundendokument usw.).

Stell Dir dabei vor, Du wärst Notes und müsstest das selber machen. Eine Ansicht ist dann ein Ordner (der gute alte von Leitz), ein Dokument ist ein Blatt Papier.

Wenn Du dann einen Ablauf hast, der in der analogen Welt funktionieren würde, dann versuchst Du diesen Ablauf mit Script zu übersetzen. Wenn es nicht analog funktioniert, kann es digital auch nicht klappen.

Es macht m.E. überhaupt keinen Sinn, ein Script von irgendwoher zu nehmen, ohne den Sinn des Scripts verstanden zu haben, und  dann da solange dran rumzuprockeln (oder sich Code-Brocken von uns zuwerfen zu lassen) bis dann irgendetwas scheinbar mehr oder weniger geklappt haben könnte, müsste oder wollte. Du musst verstehen was dort abläuft. Du steuerst Notes, und nicht umgekehrt.

Wenn ich das Script sehe, das Du zuletzt gepostet hast, erkenne ich nur, dass Du nicht weißt, was abläuft. Hier eine Klartextdarstellung Deiner Befehle (Ausschnitt):

Merke die Kundennummer
Suche Dokument in der Ansicht anhand der Kundennummer
Ändere die Felder
Speichere das Dokument
Suche das nächste Dokument in irgendeiner Collection
Merke die Kundennummer
Suche Dokument in der Ansicht anhand der Kundennummer
Nimm den nächsten Datensatz

Stell Dir vor, Du bekommst diese Arbeitsanweisung von Deinem Chef, Du würdest ihm wohl einen Vogel zeigen. Notes macht das Dir gegenüber auch, aber auf eine andere Weise.

Wie gesagt, mehr schreibe ich nicht zu diesem Thema.
« Letzte Änderung: 08.10.10 - 12:41:14 von Peter Klett »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz