Hallo ihr lieben
Ich mache mich gerade an den nächsten Teil meines Programmes. Die automatische Rechnungskontrolle.
Da ich hier aber sehr viel Googlen muss, bitte ich um Hilfe bei den Vorüberlegungen.
So funktioniert das Programm bisher (in meiner VBA Excel Variante).
Ich konvertiere eine pdf Rechnung, mithilfe des Abby Fine Readers, in eine xlsx Datei.
Diese Importiere ich dann in mein Programm - es öffnet sich eine UserForm in der der User die Firma angeben muss.
Gibt es zu dieser Firma Standartwerte, werden diese geladen und in meiner Tabelle oberhalb der Rechnung angezeigt.
Standartwerte meint: Spalte für Art.Nr (z.B. A), Spalte für Art. Name (B), Spalte für Preis (C), muss gerechnet werden (boolean), ggf. Spalte für Rabatt
Nun kann der User diese Standartspalten verändern, wenn z.B. das Blatt schief eingescannt wurde und die Art Nr. nicht - wie üblich - in Spalte A stehen, kann er halt B hinschrieben.
Außerdem ist es natürlich möglich die Einträge innerhalb der Tabelle (also der xlsRechnungsImport) zu verschieben - falls Blatt 1 die ArtNr in A hat, und Blatt 2 in B.
Nach einem Klick auf Kontrolle wird nun der Rechnungsimport in ein Array geschmissen und eine LIste der Soll Preise (export aus Warenwirtschaftssystem (WWS)), wird ebenfalls in ein Array geschmissen (dies erhöht in VBA die Performance DEUTLICH - im Vergleich zum Arbeiten "auf dem Blatt")
Es wird nun jede Art.Nr. der Rechnung, mit den Artikelnummern aus der WWS verglichen.
Wenn eine Art.Nr. gefunden wurde, wird der Preis (entweder Listenpreis, oder wenn gerechnet werden soll, der Listenpreis abzgl. Rabatt) verglichen.
Ist er gleich wird an die Zeile im Array ein "korrekt" angehängt.
Ist der Preis falsch (egal ob zu teuer oder zu billig), wird die Differenz angehängt.
Wurde eine Artikelnummer von der Rechnung nicht gefunden, wird "nicht gefunden" angehängt.
Sind alle Artiklenummern durchgerattert, wird das Array zurück ins Blatt geschrieben.
So dass dann jeder Artikel gekennzeichnet ist ob der Preis korrekt oder falsch ist, oder ob der Artikel nicht gefunden wurde.
Danach gibt es noch Zusatzfunktionen um z.B. alle korrekten Preise, oder alle nicht gefundenen Artikel zu entfernen.
Dies möchte ich nun in Vb.Net umsetzen.
Ich denke dafür werde ich weiterhin den Abby FIne Reader verwenden - denn das Programm funktioniert ja einwandfrei und es ist eben vorhanden.
Trotzdem wäre mir eine kostenlose Alternative lieber - aber ich bezweifel dass ich diese finden werde.
Der Fine Reader unterstützt die OCR Erkennung in folgende Formate:
rtf / pdf / doc / odt / pptx / html / txt / xls / csv / epub / fb2 / djvu
Ich würde hier csv wählen und dieses dann in ein Datagridview importieren.
Die Standartwerte für Firmen speichere ich in einem DataSet (hier gibt es bereits eine DataTable für Lieferanten).
Diese Standartwerte lasse ich in Text (oder Comboboxen) überm Dgv anzeigen, genau wie eine Checkbox "bolrechnen".
Dann kann ich genau wie in meinem Excel Programm die Spalten in denen die Werte stehen auswhälen und ggf. im Dgv die Daten hin und her schieben (wie in Excel halt).
Würdet ihr auch diesen Ansatz wählen - oder einen anderen?
Kein csv, sondern was anderers? Kein DGV sondern was andereres? etc?
Ich mache mich gerade an den nächsten Teil meines Programmes. Die automatische Rechnungskontrolle.
Da ich hier aber sehr viel Googlen muss, bitte ich um Hilfe bei den Vorüberlegungen.
So funktioniert das Programm bisher (in meiner VBA Excel Variante).
Ich konvertiere eine pdf Rechnung, mithilfe des Abby Fine Readers, in eine xlsx Datei.
Diese Importiere ich dann in mein Programm - es öffnet sich eine UserForm in der der User die Firma angeben muss.
Gibt es zu dieser Firma Standartwerte, werden diese geladen und in meiner Tabelle oberhalb der Rechnung angezeigt.
Standartwerte meint: Spalte für Art.Nr (z.B. A), Spalte für Art. Name (B), Spalte für Preis (C), muss gerechnet werden (boolean), ggf. Spalte für Rabatt
Nun kann der User diese Standartspalten verändern, wenn z.B. das Blatt schief eingescannt wurde und die Art Nr. nicht - wie üblich - in Spalte A stehen, kann er halt B hinschrieben.
Außerdem ist es natürlich möglich die Einträge innerhalb der Tabelle (also der xlsRechnungsImport) zu verschieben - falls Blatt 1 die ArtNr in A hat, und Blatt 2 in B.
Nach einem Klick auf Kontrolle wird nun der Rechnungsimport in ein Array geschmissen und eine LIste der Soll Preise (export aus Warenwirtschaftssystem (WWS)), wird ebenfalls in ein Array geschmissen (dies erhöht in VBA die Performance DEUTLICH - im Vergleich zum Arbeiten "auf dem Blatt")
Es wird nun jede Art.Nr. der Rechnung, mit den Artikelnummern aus der WWS verglichen.
Wenn eine Art.Nr. gefunden wurde, wird der Preis (entweder Listenpreis, oder wenn gerechnet werden soll, der Listenpreis abzgl. Rabatt) verglichen.
Ist er gleich wird an die Zeile im Array ein "korrekt" angehängt.
Ist der Preis falsch (egal ob zu teuer oder zu billig), wird die Differenz angehängt.
Wurde eine Artikelnummer von der Rechnung nicht gefunden, wird "nicht gefunden" angehängt.
Sind alle Artiklenummern durchgerattert, wird das Array zurück ins Blatt geschrieben.
So dass dann jeder Artikel gekennzeichnet ist ob der Preis korrekt oder falsch ist, oder ob der Artikel nicht gefunden wurde.
Danach gibt es noch Zusatzfunktionen um z.B. alle korrekten Preise, oder alle nicht gefundenen Artikel zu entfernen.
Dies möchte ich nun in Vb.Net umsetzen.
Ich denke dafür werde ich weiterhin den Abby FIne Reader verwenden - denn das Programm funktioniert ja einwandfrei und es ist eben vorhanden.
Trotzdem wäre mir eine kostenlose Alternative lieber - aber ich bezweifel dass ich diese finden werde.
Der Fine Reader unterstützt die OCR Erkennung in folgende Formate:
rtf / pdf / doc / odt / pptx / html / txt / xls / csv / epub / fb2 / djvu
Ich würde hier csv wählen und dieses dann in ein Datagridview importieren.
Die Standartwerte für Firmen speichere ich in einem DataSet (hier gibt es bereits eine DataTable für Lieferanten).
Diese Standartwerte lasse ich in Text (oder Comboboxen) überm Dgv anzeigen, genau wie eine Checkbox "bolrechnen".
Dann kann ich genau wie in meinem Excel Programm die Spalten in denen die Werte stehen auswhälen und ggf. im Dgv die Daten hin und her schieben (wie in Excel halt).
Würdet ihr auch diesen Ansatz wählen - oder einen anderen?
Kein csv, sondern was anderers? Kein DGV sondern was andereres? etc?