Hallo Leute
Es ist sowei. ich möchte anfangen mein Umfangreiches VBA Projekt in VB.Net umzuwandeln.
Hierfür mache ich mir gerade Vorüberlegungen, damit ich nicht nach kurzer Zeit alles umstrickeln muss.
Ich entschuldige mich im Vorraus für meine Liternei hier, aber ich habs nicht kürzer hinbekommen. Hoffe der ein oder andere liest trotzdem.
Das Programm dient zwei Zecken.
1. verwende ich mein VBA Programm bisher bei mir im Laden
2. ist dies eine wunderbare Übung, da ich nie die Lust verliere das Programm weiterzuentwickeln, weil ich es ja täglich brauche
Ich beschreibe erstmal den Aufbau des bisherigen Programms. Wenn jemand das Programm sehen möchte, werde ich es natürlich gerne anonymisieren und hochladen.
Da dies aber mit einigem Aufwand verbunden ist (sind echt viele Daten nach zwei Jahren Nutzung), habe ich mir den Aufwand (erstmal) gespart.
Es besteht aus mehreren Einzelprogrammen (also separaten xlsm Dateien - die isch gegenseitig aufrufen können).
Das Hauptprogramm ist wie folgt aufgebaut:
Startseite: zeigt an welche Lieferungen (also von welchen Firmen) offen sind und wann diese vorrausichtlich eintreffen (durchschnittliche LIeferzeit)
dann gibt es eine Seite für jede Firma auf der jedes Bestelldatum, sowie Lieferdatum, Datum des Rechnungserhaltes, Re Nummer, Re Summe, usw. gespeichert werden
Es gibt eine Seite auf der Kundenbestellungen gespeichert werden also Datum, Tel Nr. Name, welcher Artikel mit Art.Nr., von welcher Firma usw.
Wenn nun eine Bestellung einer Firma getätigt wird, für die es eine offene Kundenbestellung gibt, wird ein Fenster angezeigt und der Artikel ggf. der Bestellung hinzugefügt.
Es gibt ein Adressbuch mit der Möglichkeit emails zu senden, einen Urlaubskalender, mehrere Statistiken (Monatsstatistik, Jahresstatistik, Statistik Online, Statistik Rekore (höchste Tageseinnahme, meiste Kunden, usw.), und eine einfache statistische Auswertung aller Wareneingangskosten, abzgl. aller Einnahmen = Rohertrag)
Dann gibt es eine sehr wichtige Funktion - die Rechnungskontrolle.
Hier scanne ich meine Wareneingangsrechnungen ein, wandel diese mit dem Abbyy finde Reader in eine xlsx um. Mein Programm vergleicht dann jede Position dieser Rechnung anhand der Artikelnummer mit einer zoomitEK Datei (letzlich ein xlsm Export meines Warenwirtschaftsystems) und zeigt an, ob ein Artikel korrekt / zuteuer / zu billig berechnet wurde, oder ob dieser nicht gefunden wurde.
Und dann gibt es noch einen haufen kleinerer Funktionen wie z.B. Datensicherung mit 7zip, mit einstellbarem Intervall (also alle 2 Tage, z.B.) und einstellbarer Menge an zu speichernde Sicherungen (wenn also 5 gewählt, werden 5 Sicherungen gespeichert - sind es mehr wird die älteste gelöscht)
Dann gibt es für jede Firma eine Bestelldatei mit EAN Funktionalität. Wenn also ein EAN Code eingescannt wird, wird die Bestellmenge um ein einstellbares Intervall erhöht.
Außerdem werden in der Datei ältere Bestellungen gespeichert. Es gibt die Funktion eine Bestellung automatisch abzuschließen (es wiid eine pdf erzeugt, diese wird in einer Userform angezeigt, inklusive üblicher Daten für Mailversand und mit Klick auf senden wird diese versendet.
Und es gibt noch die "Import" Datei.
Diese greift auf die *.mdb meines Warenwirtschaftssystems zu und erstellt mir hieraus die zoo und zoomitEK Dateien.
Dies sind beides xlsm exporte meines Warenbestandes einmal mit Einkauspreisen, einmal ohne (für die Angestellten).
Hier gibt es Funktionalitäten wie z.B. Artikel, bzw. seinen Preis mittels EAN Code zu finden
Außerdem nutze ich folgende externe Programme: CTO EHO (Warenwirtschaft), Firefox portable, Thunderbird portable. 7zip Console, blat (Emailversand), und einen Kalender.
Das ganze ist absolut portable ich kann mein Programm also in vollem Umfang auf jedem PC vom USB Stick nutzen, mit der Einschränkung, dass natürlich Excel installiert sein muss, und das Adobe Reader Plugin, zum pdf angucken im Programm). Dies ist wichtig! Das Programm muss "portable" und absolut offline verfügbar sein.
Die Nutzung findet nur auf einem PC statt, also kein Netzwerk oder dergleichen.
So. Die Umsetzung habe ich mir wie folgt überlegt.
Ich packe alles als einzelne Form in einen mdi Container, so habe ich den Code schön strukturiert und kann jederzeit einzelne Komponenten hinzufügen, ohne Code ändern zu müssen. Außerdem könnte ich dann auch andere Projekte, wenn ich z.B. einen Kalender finde oder so, problemlos integrieren.
Außerdem habe ich dann nicht immer gefühlte 100 Fenster offen (wie jetzt mit Excel)
Die Daten an sich würde ich in einem typisierten DataSet speichern.
Hier bin ich mir noch unschlüssig, ob ein Dataset pro Art der Daten (also Adressbuch, Kundenbestellungen, Firmen usw.), oder alles in einem.
Ich denke, dass ein Dataset pro Art der Daten sinnvoller ist (und die Daten liegen ja auch auf unterschiedlichen Forms), aber ich weiß nicht ob ich problemlos mit zwei Datasets in einer Form arbeiten kann, falls dies mal nötig ist.
Außerdem bin ich mir unschlüssig, ob ich mein Warenwirtschaftssystem, in den MDI Container integriere, oder das dann doch lieber als einzelnes Programm mache.
Und ob hier ein typisiertes DataSet wirklich die korrekte Speicherart ist. Aktuell habe ich ca. 30.000 Artikel drin, die Zahl ist langsam wachsend.
Was haltet ihr von meiner Umsetzungsidee? Was würdet ihr ggf. anders machen.
P.S. falls jemand Lust haben sollte an diesem Projekt mitzuwirken (von mir gibts aber nix zu lernen), oder vielleicht mal etwas geschrieben hat, das mir helfen könnte, bin ich natürlich immer aufgeschlossen.
Es ist sowei. ich möchte anfangen mein Umfangreiches VBA Projekt in VB.Net umzuwandeln.
Hierfür mache ich mir gerade Vorüberlegungen, damit ich nicht nach kurzer Zeit alles umstrickeln muss.
Ich entschuldige mich im Vorraus für meine Liternei hier, aber ich habs nicht kürzer hinbekommen. Hoffe der ein oder andere liest trotzdem.
Das Programm dient zwei Zecken.
1. verwende ich mein VBA Programm bisher bei mir im Laden
2. ist dies eine wunderbare Übung, da ich nie die Lust verliere das Programm weiterzuentwickeln, weil ich es ja täglich brauche
Ich beschreibe erstmal den Aufbau des bisherigen Programms. Wenn jemand das Programm sehen möchte, werde ich es natürlich gerne anonymisieren und hochladen.
Da dies aber mit einigem Aufwand verbunden ist (sind echt viele Daten nach zwei Jahren Nutzung), habe ich mir den Aufwand (erstmal) gespart.
Es besteht aus mehreren Einzelprogrammen (also separaten xlsm Dateien - die isch gegenseitig aufrufen können).
Das Hauptprogramm ist wie folgt aufgebaut:
Startseite: zeigt an welche Lieferungen (also von welchen Firmen) offen sind und wann diese vorrausichtlich eintreffen (durchschnittliche LIeferzeit)
dann gibt es eine Seite für jede Firma auf der jedes Bestelldatum, sowie Lieferdatum, Datum des Rechnungserhaltes, Re Nummer, Re Summe, usw. gespeichert werden
Es gibt eine Seite auf der Kundenbestellungen gespeichert werden also Datum, Tel Nr. Name, welcher Artikel mit Art.Nr., von welcher Firma usw.
Wenn nun eine Bestellung einer Firma getätigt wird, für die es eine offene Kundenbestellung gibt, wird ein Fenster angezeigt und der Artikel ggf. der Bestellung hinzugefügt.
Es gibt ein Adressbuch mit der Möglichkeit emails zu senden, einen Urlaubskalender, mehrere Statistiken (Monatsstatistik, Jahresstatistik, Statistik Online, Statistik Rekore (höchste Tageseinnahme, meiste Kunden, usw.), und eine einfache statistische Auswertung aller Wareneingangskosten, abzgl. aller Einnahmen = Rohertrag)
Dann gibt es eine sehr wichtige Funktion - die Rechnungskontrolle.
Hier scanne ich meine Wareneingangsrechnungen ein, wandel diese mit dem Abbyy finde Reader in eine xlsx um. Mein Programm vergleicht dann jede Position dieser Rechnung anhand der Artikelnummer mit einer zoomitEK Datei (letzlich ein xlsm Export meines Warenwirtschaftsystems) und zeigt an, ob ein Artikel korrekt / zuteuer / zu billig berechnet wurde, oder ob dieser nicht gefunden wurde.
Und dann gibt es noch einen haufen kleinerer Funktionen wie z.B. Datensicherung mit 7zip, mit einstellbarem Intervall (also alle 2 Tage, z.B.) und einstellbarer Menge an zu speichernde Sicherungen (wenn also 5 gewählt, werden 5 Sicherungen gespeichert - sind es mehr wird die älteste gelöscht)
Dann gibt es für jede Firma eine Bestelldatei mit EAN Funktionalität. Wenn also ein EAN Code eingescannt wird, wird die Bestellmenge um ein einstellbares Intervall erhöht.
Außerdem werden in der Datei ältere Bestellungen gespeichert. Es gibt die Funktion eine Bestellung automatisch abzuschließen (es wiid eine pdf erzeugt, diese wird in einer Userform angezeigt, inklusive üblicher Daten für Mailversand und mit Klick auf senden wird diese versendet.
Und es gibt noch die "Import" Datei.
Diese greift auf die *.mdb meines Warenwirtschaftssystems zu und erstellt mir hieraus die zoo und zoomitEK Dateien.
Dies sind beides xlsm exporte meines Warenbestandes einmal mit Einkauspreisen, einmal ohne (für die Angestellten).
Hier gibt es Funktionalitäten wie z.B. Artikel, bzw. seinen Preis mittels EAN Code zu finden
Außerdem nutze ich folgende externe Programme: CTO EHO (Warenwirtschaft), Firefox portable, Thunderbird portable. 7zip Console, blat (Emailversand), und einen Kalender.
Das ganze ist absolut portable ich kann mein Programm also in vollem Umfang auf jedem PC vom USB Stick nutzen, mit der Einschränkung, dass natürlich Excel installiert sein muss, und das Adobe Reader Plugin, zum pdf angucken im Programm). Dies ist wichtig! Das Programm muss "portable" und absolut offline verfügbar sein.
Die Nutzung findet nur auf einem PC statt, also kein Netzwerk oder dergleichen.
So. Die Umsetzung habe ich mir wie folgt überlegt.
Ich packe alles als einzelne Form in einen mdi Container, so habe ich den Code schön strukturiert und kann jederzeit einzelne Komponenten hinzufügen, ohne Code ändern zu müssen. Außerdem könnte ich dann auch andere Projekte, wenn ich z.B. einen Kalender finde oder so, problemlos integrieren.
Außerdem habe ich dann nicht immer gefühlte 100 Fenster offen (wie jetzt mit Excel)
Die Daten an sich würde ich in einem typisierten DataSet speichern.
Hier bin ich mir noch unschlüssig, ob ein Dataset pro Art der Daten (also Adressbuch, Kundenbestellungen, Firmen usw.), oder alles in einem.
Ich denke, dass ein Dataset pro Art der Daten sinnvoller ist (und die Daten liegen ja auch auf unterschiedlichen Forms), aber ich weiß nicht ob ich problemlos mit zwei Datasets in einer Form arbeiten kann, falls dies mal nötig ist.
Außerdem bin ich mir unschlüssig, ob ich mein Warenwirtschaftssystem, in den MDI Container integriere, oder das dann doch lieber als einzelnes Programm mache.
Und ob hier ein typisiertes DataSet wirklich die korrekte Speicherart ist. Aktuell habe ich ca. 30.000 Artikel drin, die Zahl ist langsam wachsend.
Was haltet ihr von meiner Umsetzungsidee? Was würdet ihr ggf. anders machen.
P.S. falls jemand Lust haben sollte an diesem Projekt mitzuwirken (von mir gibts aber nix zu lernen), oder vielleicht mal etwas geschrieben hat, das mir helfen könnte, bin ich natürlich immer aufgeschlossen.