Ein neues Projekt erstellen, welcher Weg ist zielfürend

  • VB.NET

Es gibt 76 Antworten in diesem Thema. Der letzte Beitrag () ist von blam.

    Ja, noch erkenne ich nicht alles wieder.
    Baut das noch auf dem Datenmodell aus post#24 auf?


    Ich nehme an, das DGV ganz links zeigt die Tabelle Vorlage an?
    Wo kommt die DGV-Spalte EinlesenVon her?
    Wozu ist die gut, und - wenn sie gut ist - warum steht da nix drin?

    Also wäre wirklich gut, wenn du da Groupboxen um die DGVs machen tätst, damit man Worte hat, mit denen man darüber reden kann.
    Ja, es baut noch auf dem Datenmodell auf.

    Die Spalte EinleseVon war deine Idee:

    ErfinderDesRades schrieb:

    Schnucklig wäre zB, wenn man Vorlage erweitert um eine Spalte EinlesenVon, sodass man zu jeder Vorlage einen Ordnerpfad angeben kann, aus dem die ExcelFiles eingelesen werden sollen.
    Wenn ich dort händisch den Pfad eintrage, macht aus meiner Sicht

    VB.NET-Quellcode

    1. Private Sub StartToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StartToolStripMenuItem.Click
    2. KundeOrdnerAuslesen("C:\Temp\VB\Zahlungen\MG")
    3. End Sub
    keine Sinn mehr...

    Die Groupboxen nehme ich in Angriff.

    Das DGV ganz links zeigt die Tabelle Vorlage an. Das ist richtig.

    Hier noch eine Ansicht mit den Groupboxen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „blam“ ()

    blam schrieb:

    ... zu jeder Vorlage einen Ordnerpfad angeben kann, aus dem die ExcelFiles eingelesen werden sollen.... Wenn ich dort händisch den Pfad eintrage, macht aus meiner Sicht [...] keine Sinn mehr...
    Naja doch, bzw. sinnvoll abgewandelt dann erst recht:

    VB.NET-Quellcode

    1. Private Sub StartToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StartToolStripMenuItem.Click
    2. KundeOrdnerAuslesen(bsVorlage.Current.EinlesenVon)
    3. End Sub
    (sinngemäss - bs.Current ist nur PseudoCode)



    Dumm allerdings, dass in deim Form der Spalte dtsColName SpaltenNamen aufgeführt sind, die im dts garnet existieren. So wird man natürlich nix mappen können.
    Da müssen natürlich die SpaltenNamen deiner Zahlungen-Tabelle eingetragen werden - nicht iwelches ausgedachtes Zeug, wasses nicht gibt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Ich muss mich präzisieren.

    blam schrieb:

    ("C:\Temp\VB\Zahlungen\MG")
    Dieser Teil macht keinen Sinn mehr. Es kommt dann

    ErfinderDesRades schrieb:

    KundeOrdnerAuslesen(bsVorlage.Current.EinlesenVon)
    sowas zum Zuge.

    Ist das

    ErfinderDesRades schrieb:

    Da müssen natürlich die SpaltenNamen deiner Zahlungen-Tabelle eingetragen werden - nicht iwelches ausgedachtes Zeug, wasses nicht gibt.
    ein händischer Teil oder braucht es die DataTable Zahlungen garnicht?
    Blam du schreibst...
    Immerhin verstehe ich den Teil, dass die Daten aus den Kunden
    Excel-Daten am Ende in der Tabelle Zahlungen abgelegt werden sollen,
    richtig.
    Um überhaupt in die richtige Richtung zu suchen muss ich den Ablauf
    verstehen, wie du ihn dir vorstellst
    ... Ich beziehe mich auf mein Bild
    "Data-Set".


    ist es dein Programm oder das von EDR?
    versteht mich beide nicht falsch aber .. die Gedanken eines anderen zu erraten oder zu antizipieren
    führt zu nichts, ausser missverständnisse.

    blam, ich würde dir empfehlen mach mal den PC aus, nehme Bleistift und Papier und schreibe
    die einzelnen schritte auf, so wie du es dir vorstellst.

    @ErfinderDesRades
    das hier ist jetzt nicht negativ gemeint, aber @blam versucht deine Vorstellung umzusetzen,
    und versteht nicht es umzusetzen

    blam schrieb:

    Ist das

    ErfinderDesRades schrieb:
    Da müssen natürlich die SpaltenNamen deiner Zahlungen-Tabelle eingetragen werden - nicht iwelches ausgedachtes Zeug, wasses nicht gibt.

    ein händischer Teil?
    Das muss händisch eingegeben werden

    blam schrieb:

    oder braucht es die DataTable Zahlungen garnicht?
    Die DataTable Zahlungen ist das Ziel des Programms. Da hinein speichert es seine Ergebnisse: Alle Zahlungen aller Kunden, in einheitlichem Format.
    Sie wird durch einen noch zu schaffenden Algo befüllt, der sinnvoll konfigurierte MappingInformationen (alias "Vorlage") benutzt, um xls-Dateien auszulesen, die die Zahlungs-Informationen je nach Kunde in unterschiedlichen Formaten enthalten.
    @Kasi Es ist ein Projekt von mir. Weil ich aber nicht wusste, wie ich dieses am zielführendsten umsetzen kann/soll, habe ich hier um Rat und Inputs gefragt. EDR hat das nötige Wissen, wie ein solches Projekt verwirklicht werden kann. Ich habe mir jetzt skizziert, was ich will.

    In der Praxis sieht das so aus, dass heute die Kunden A und B Zahlungsdaten liefern, welche ich benötige. Ihre Files haben aber nicht das gleiche Format. Damit ich nicht jedes Mal händisch in mein Outputfile Kopieren und Einfügen muss, möchte ich ein Tool, mich welchem ich die Spalten aus den Files der Kunden den Spalten meinem OutputFile zuordnen kann. Morgen liefert mir dann Kunde C seine Zahlungsdaten, die haben wieder ein anderes Format.
    Das gleiche Problem stellt sich bei Adress- und Personendaten.

    @ErfinderDesRades Ich gehe davon aus und so verstehe ich auch den aufgezeigten Weg, dass mit deinem Weg dieses Problem gelöst werden kann. Ich frage mich manchmal, ob meine Fähigkeiten ausreichend sind, das Projekt mit deinen Inputs zu lösen. Ich finde es gut, dass du nicht einfach einen fertigen Code postest! So wäre der Lerneffekt an einem kleinen Ort oder gar nicht vorhanden. Ich versuche jetzt nochmals zu verstehen, wie der Ablauf sein soll:
    Unter Vorlage "Name" sind meine Kunden aufgeführt (händisch erfasst) dazu unter "EinlesenVon" (auch händisch erfasst) der Pfad, wo sich das jeweilige KundenFile befindet. In Sheet werden unter "Name" die verschiedenen Tabellenblätter des ausgewählten Kunden aufgelistet. In Column unter "xlsColName" werden die Spaltennamen der ausgewählten Tabelle aus Sheet aufgelistet und mit "ColumnMapping" kann ich zuordnen, welche meiner Splaten derjenigen der Kunden entspricht. Der Inhalt von "ColumnMapping" basiert auf den Angaben des DGV ColumnMapping "dtsColName", was wiederum händisch erstellt wurde. Am Schluss kommen die Daten in das DGV Zahlungen. Richtig?

    blam schrieb:

    "EinlesenVon"
    (auch händisch erfasst) der Pfad, wo sich das jeweilige KundenFile
    befindet
    einlesenVon soll einen Ordner-Pfad enthalten, nicht eine einzelne Excel-Datei.
    Und aus dem Ordner sollen dann viele .xls eingelesen werden und verarbeitet

    blam schrieb:

    Am
    Schluss kommen die Daten in das DGV Zahlungen. Richtig?
    Ja, inhaltlich richtig.
    Nur noch klein Klugschiss: Die Daten kommen in die DataTable Zahlungen - ja, und da kannste ein DGV dran anbinden.
    Gut, dann bin ich nicht völlig orientierungslos unterwegs. Wäre denn nicht passender, wenn unter Vorlage in "Name" "Zahlungen", "Personen", "Adressen" aufgeführt sind und in "EinlesenVon" der jeweilige Ordner-Pfad, in welchem die Files der verschiedenen Kunden abgelegt sind?
    Für einen Kunden gibt es eine Vorlage. Einen einzigen, händisch angelegten Datensatz.
    Der Kunde tätigt aber viele Zahlungen - wie willst du viele Zahlungen in einen einzigen Datensatz hineinkriegen?
    (Und von Personen und Adressen war bislang ühaupt nicht die Rede)

    blam schrieb:

    und in "EinlesenVon" der jeweilige Ordner-Pfad, in welchem die Files der verschiedenen Kunden abgelegt sind?
    Naja, besser fände ich, wenn in dem Ordner nur die Files genau dieses einen Kunden abgelegt sind.
    Aber vmtl. meinen wir dasselbe: Je Kunde ein OrdnerPfad, und da hinein seine Files.


    Vielleicht ist das mit ein Grund, warum ich nicht immer folgen kann.

    blam schrieb:

    Es können Zahlungsverbindungen sein, Adressen und Personen, Auftragsübersichten einfach quer Beet alles, was so im Excel verarbeitet wird. Von den vielen Inhalten der Quellen benötige ich aber für die Weiterverarbeitung immer die gleichen Inhalte, wieder je nach Thema.

    Warum brauche ich pro Kunde einen Ordner? Ich möchte doch nur das excel-File ausgelesen haben, welches in diesem Ordner ist. Und den Spalten des ausgelesenen Sheets kann ich dann meine Spalten zuweisen. So wie in Column.
    In der Regel ist es ein File. Dieses wird dann weiter verarbeitet. Ein paar Tage oder Wochen später kommt ein neues File vom gleichen Kunden, aber mit neuen Daten. Dieses wird dann wieder weiter verarbeitet. Bis anhin wird eine Kopie des KundenFiles gemacht und die überflüssigen Spalten gelöscht und die verbleibenden mit einheitlichen Spaltenüberschriften versehen.
    ja, musst du wissen.
    Soll, wenn ein Kunde verarbeitet wird, genau ein .xls verarbeitet werden oder mehrere?
    Mir scheint nachwievor ein Ordner je Kunde sinnvoll.
    Und dann sucht man daraus diejenigen Files, die bislang noch nicht verarbeitet wurden (das können auch mehrere sein).
    So spart man sich einen OpenFile-Dialog, wo der Benutzer dann immer noch herumklicksen muss, bis er die richtige .xls gefunden hat.