Suchergebnisse

Suchergebnisse 1-30 von insgesamt 62.

  • Benutzer-Avatarbild

    Klaro Im Anhang eine Beispiel-Solution mit einer sehr erprobten Assembly-Architektur für Datenverarbeitungen mit WinForms. Tatsächlich ists ein Anwendungs-Template, dessen Kern-Namen ich immer umbenenne, wenn ich ein neues Projekt anfange. Zum Umbenennen benutze ich dieses Tool: SolutionExplorer - OpenSource Eine andere wichtige Funktion des Tools ist, dass man damit lauffähige Backups zippen kann.

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „wäre es in einem Lernprojekt nicht hinderlich, direkt alles an Helferlein reinzuklatschen?“Och - ich glaub, da bleibt genug zu tun. Und ein ganz wichtiges Charakteristikum von Programmieren in einer Hochsprache ist es eben, Dinge, die es bereits gibt, zu finden und zu benutzen - anstatt das Rad neu zu erfinden. Das ist auch etwas zu lernen, und ist wichtig. Sind schon ganze Raumfahrt-Projekte eingegangen am "NIH"-Syndrom.

  • Benutzer-Avatarbild

    Zitat von tragl: „könnte man den SolutionExplorer mal dahingehend verbessern, dass man den eigenständig öffnen und aus dem SolutionExplorer selbst eine sln öffnen kann?“Für mein Geschmack wäre das keine Verbesserung. Aber RodFromGermany hat das gemacht, und hat seine Solution auch im selben Thread angehängt (also auch dieses Rad ist bereits erfunden ). @DerSmurf - Zu dem Fehler: Manchmal verhaspelt sich was, was aber meist nix macht. guck mal, ob die Solution nicht trotzdem unter dem neuen Namen…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „1. Mir erstmal genau Überlegen was das Programm können soll (und im groben, wie die Funktionalität erreicht wird) 2. Wie ich die Daten speicher (DataSet, Datenbank) 3. mal ein Bild malen, wie das Programm im groben aussehen soll 4. dann gehts los“ Bei mir ginge das so:1. Überlegen was das Programm können soll (nicht unbedingt ganz genau, aber schon so, dass ich jemandem das erklären kann) 2. Mittm SolutionExplorer eine sinnvoll benannte Solution hinkloppen 3. Und schon gehts…

  • Benutzer-Avatarbild

    Jo - ist eine hübschere Präsentation als typDataset. (Ansonsten komme ich mit typDataset grad gut klar, so Hässlichkeiten kamen mir länger nicht mehr unter.) Das "kundengebunden" ergab sich aus der Angelverein-Geschichte. Scheinbar sind Angelverein(DAV)-Marken Artikel, bei denen der Kunde notiert wird, während Fischereiabgabemarken-Marken ohne das über den Ladentisch gehen. Ja gut, könnte man so modellieren, dass man einen Kunden namens 'Anonym' einführt. Fischereiabgabemarken-Marken würden dann…

  • Benutzer-Avatarbild

    Jo, für Nullables sehe ich im Datenmodell auch keinen Bedarf. Anders als Tragl sieht mir die AbrechnungLieferung-Tabelle aber richtig aus. Zumindest als Lieferung-Tabelle sagt das Ding doch aus, welcher Lieferant an welchem Datum wieviele Marken einer Sorte geliefert hat - das ergibt doch Sinn. Könnte mir allerdings vorstellen, das ist noch zu simpel, weil bei einer Lieferung kann derselbe Lieferant vielleicht Marken verschiedener Sorten liefern - muss DerSmurf wissen, wie sich das verhält. Ähnl…

  • Benutzer-Avatarbild

    Zitat von petaod: „Ich arbeite seit Jahrzehnten in internationalen Umgebungen...“Das ist was anderes als hier der Fall. Natürlich muss man in internationalen Zusammenhängen sich einer "Amtssprache" bedienen, und weil Esperanto sich nicht durchsetzen konnte muss man mit Englisch vorliebnehmen. Zitat von petaod: „ Jeder Programmierer weltweit hat in der Schule Englisch gelernt. Lass ihn das nutzen.“Schul-Englisch reicht nicht, um die oft hochspezialisierten Sachverhalte präzise und unmissverständl…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Ich verstehe unter Lieferung: Der Verein bringt 100 Jahreskarten unter Abrechnung: Der Verein bekommt Geld für 30 Jahreskarten Da ja nur bezahlt wird, was auch verkauft wurde, dachte ich mir es ist so ähnlich wie eine Lieferung und passt in eine Table.“Ah - das Kommissions-Geschäfts-modell! Hab ich aber nachwievor spontane Zweifel, ob man Abrechnung und Lieferung als dieselbe Art Vorgang in eine Tabelle stopfen kann. Bei einer Lieferung fliesst kein Geld, bei einer Abrechnun…

  • Benutzer-Avatarbild

    vb-paradise.de/index.php/Attac…ea8402e56694a92b0f67299f0 Kannste dir so ähnlich vorstellen, wie wenn du alle deine Einkaufszettel sammelst: Da kommen viele Läden vor, in jedem Laden käufst du mehrmals ein, pro Einkauf Artikel verschiedener Art (hier: Marke). Auf jedem KassenBon sind Bon-Positionen gelistet - je eine ArtikelArt, unter Angabe der Anzahl Ich gebe dir im übrigen inzwischen recht - scheint mir nun auch möglich, Lieferung und Abrechnung in derselben Tabelle zu führen, und einfach anha…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Theoretisch müsste doch der Speicherbedarf (und damit die Ausführungszeit) ziemlich gleich sein...“Speicherbedarf, Ausführungszeit sind völlig irrelevant - daran solltest du keinen Gedanken verschwenden. Ob das Proggi nun 0,1% deines Speichers belegt - den es beim Schliessen ja eh wieder freigibt - oder mw. das zehnfache: 1%. Beides quasi unendlich irrelevant, und 10 * unendlich ist bekanntlich auch nur unendlich. Ebenso die Geschwindigkeit - Ob die Abrechnung in 0,1 Millise…

  • Benutzer-Avatarbild

    Also mir gefällt das ganz gut. Für Geldbeträge sollte man Datentyp Decimal nehmen. Auf Einkaufseite könntest du noch eine Tabelle Einkauf hinzufügen, die mehrere verkaufte Marken zusammen-addiert. Aber kann man auch lassen, wenn das mit Kopfrechnen noch handhabbar ist.

  • Benutzer-Avatarbild

    na, wies jetzt ist, steht der Kunde an der Kasse mit 3 verschiedenen Marken. Dann suchst du den Kunden, und fügst ihm VerkaufteMarke1 hinzu - schliesst den Dialog wieder. Dann suchst du den Kunden, und fügst ihm VerkaufteMarke2 hinzu - schliesst den Dialog wieder. Dann suchst du den Kunden, und fügst ihm VerkaufteMarke3 hinzu - schliesst den Dialog wieder. Dann rechnest du im Kopf zusammen, wasses kostet, und er gibt dir das geld. Mit einer Tabelle Einkauf: Du suchst den Kunden, und fügst ihm ei…

  • Benutzer-Avatarbild

    Ich hingegen finde ungarische Notation für bestimmte Zwecke nützlich und angebracht, und es würde Code verschlechtern, wenn man da den MS-Design-Guidelines folgen würde.

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Hier fällt mir aber auf, dass nach dem kopieren (CreateTemplateChild) im linken Fenster nur noch Angelmarken.vbjpro angezeigt wird.“Der SolutionExplorer hat oben eine Combobox, da kann man eine Art Viewmode einstellen. Entweder Complete oder UserCodeOnly Bei UserCodeOnly sind Helpers-Projekte ausgeblendet. Für die Funktion ist das ohne Belang. Was alles beim TemplateChild umkopiert und umbenannt ist, ist glaub im Post aufgelistet, wo man den SolutionExplorer downloaden kann.…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „der Vorteil ist dein Template zu verwenden, im Vergleich zu einer neuen leeren Solution?“achso. Aber das habich glaub in post#2 gesagt oder so. Das Template stellt eine sehr erprobte Anwendungs-Architektur hin: Haupt-Anwendung, Helper-Bibliotheken, Ordner fürs Dataset, Datei zum Abspeichern des Datasets, Code-Datei für Business-Logik. Business-Logik für ein global zugreifbares Dataset ist bereits implementiert, die Importe sind im frmAngelmarken bereits gesetzt. Also kanns e…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Edit: ähm. Eigentlich kann die Solution die du hochgeladen hast, doch bei dir auch nicht laufen. Oder ich komme gerade gar nicht klar. Die Verweise von "Angelmarken" auf "GeneralHelpers" und "WinFormHelpers" laufen bei mir beide ins leere. Die dlls gibt es nicht.“ Ja, ich hab einen "Fehler" in GeneralHelpers. Die binden neuerdings Nuget.Newtonsoft.Json mit ein, und das zickt rum. "Restore Nuget Packages" geht nicht, also muss man über"Manage Nuget Packages Newtonsoft.Json de…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Hier eine Frage. Hast du die Projektmappen deiner Helpers im Code, weil du ab und an auf den Code zugreifst? Dann wäre es doch kontraproduktiv immer die gleichen Helpers zu verwenden (dafür sorgt ja der SolutionExplorer). Weil du diese Änderungen in anderen Projekten (die auf die gleichen Helpers zugreifen) nicht willst / brauchst Oder hat es einen anderen Grund, dass die Projekte da mit drinne sind? (Nur ein Verweis auf die dll würde ja den gleichen Dienst tun)“Ja, ich hab …

  • Benutzer-Avatarbild

    1. Ja, änder das doch einfach auf "". 2. Register() ist nötig für formübergreifendes Databinding, .DataFile() legt fest, wo das Dataset hinschreibt/liest, was .Fill() macht errätst du nie!

  • Benutzer-Avatarbild

    1. natürlich nicht. 2. ja und nein, weil ich kann mich nur wiederholen Schau doch einfach nochmal hin - was siehst du da?VB.NET-Quellcode (1 Zeile)Ich sehe da drei Methoden, nämlich: .DataFile(), .Register() und .Fill(). Genau darauf gehe ich ein:Zitat: „Register() ist nötig für formübergreifendes Databinding, .DataFile() legt fest, wo das Dataset hinschreibt/liest, was .Fill() macht errätst du nie!“

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Ja, das geht natürlich. Aber besser ist ja, den Grund herauszufinden, warum @ErfinderDesRades das rein gemacht hat. Muss ja einen Grund haben.“Ja Zitat von DerSmurf: „Also vielleicht sollte man ja generell einen DefaultValue festlegen.“Ja Zitat von DerSmurf: „Könnte hier mal bitte jemand mit mehr als zwei Worten antworten?“Nein. Naja, meinetwegen: Es ist ja höchst angeraten, immer AllowNull=False zu setzen, soweit es irgend geht, und bei Strings gehts immer. Andernfalls verk…

  • Benutzer-Avatarbild

    komisch - bei mir läuft das Ding fast normal. Also ich hab die kaputten Verweise gelöscht, und die richtigen Verweise hingemacht, dann gings.

  • Benutzer-Avatarbild

    Anbei mal meine Version. Wie gesagt: nur die Verweise auf die eingebundenen Projekte erneuert. Und kann sein, dass ich auch Framework-Versionen aller Projekte angeglichen hab - eine Solution läuft auch dann nicht, wenn die Helpers eine höhere Version haben als die Haupt_Anwendung. Warum Projekte einzeln kompilieren, gemeinsam aber nicht ist mir nicht nachvollziehbar. In meiner Welt muss eine Solution nach Nuget_restaurieren, dann Menü-Erstellen-Alles_Bereinigen, und dann Menü-Erstellen-Alles_Com…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Was ist hier los?“ Newtonsoft.Json ist eine dll, die über Nuget bezogen wird. Ich dachte, ich hätte die Nuget-Abhängigkeit aus den Helpers entfernt. Übrigens ists ja nur ein Warning, kein Fehler. PS: Bei dem, was du geuppt hast, ist auch alles sauber. Das mit den Tuples scheint mir ganz korrekt so. Bedient eine Überladung der .EditNew()-Extension, wenn man eine Vorbelegung im neuen Datensatz haben will. Ist umständlich - kann man vlt. besser machen. Aber ich wollte mir für d…

  • Benutzer-Avatarbild

    mal hast du wohl eine Version erwischt, wo der Verweis drin ist, mal eine wo nicht. Oder der Verweis ist immer drin, aber mal ist Nuget uptodate mal nicht.

  • Benutzer-Avatarbild

    Ich würde Marken mit Verzug als eigene Artikel einstellen. Da dynamisch abhängig vom Heute-Datum automatisch einen Preisaufschlag berechnen - der ja per DataRelation in EinkaufPosition eingehen muss - da müsste man schon bisserl tricksen, indem man bei Programmstart codeseitig geeignete berechnete Spalten einträgt ins Dataset. Hmm - wird auch schwierig mit Lieferung und Abrechnung. Neues Konzept: Aufschläge jeder Art sind besondere Artikel, und werden beim Einkauf als Extra-Einkauf-Positionen zu…

  • Benutzer-Avatarbild

    Ja, und als DefaultValue 31.12.9999 eintragen. Das bedeutet ja: Ein normaler Artikel kommt die nächsten Jahre erstmal nicht in Verzug.

  • Benutzer-Avatarbild

    Hmm - man könnte auch die DatumSpalte weglassen. Stattdessen baut man eine Mittler-Tabelle, die einen Artikel mit einem VerzugsWert verbinden kann. Bischen unschön daran, dass dadurch datenmodell-theoretisch ein Artikel mehrere Verzüge haben kann - in Wirklichkeit aber nur einen oder keinen. Vorteil so einer Konstruktion ist, dass du später Logik schreiben kannst, die einem Einkauf automatish einen Verzug zufügen kann, wenn der Artikel mit einem Verzug verknüpft ist, und dessen Datum überschritt…

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „Warum funktioniert das nicht / Warum ist das schlecht?“Die Preise ergeben sich in einer EinkaufPositionRow als berechnete Spalte: (EinkaufPositionRow.Preis = ) (parent(FK_Marke_EinkaufPosition).Preis * Anzahl Das geht Dataset-Intern - BusinessLogic bekommt keinen Fuss dazwischen. Übrigens zeigt sich da doch ein deutlicher Mangel in deim Modell. Also die Relationen ergeben mir Sinn, aber so einige der Spalten: EinkaufPosition muss die Spalten haben: ID, MarkeID, EinkaufID, An…

  • Benutzer-Avatarbild

    Hmm - nun würde ich eine Spalte Besonderheit an Artikel machen, die die Besonderheit codiert (0=Nix, 1=DAV, 2=SAM (SachsenAnhaltMeckelnburg)) Programmlogik guckt dann beim Verkauf eines Artikels nach, ob und welche Besonderheit vorliegt und weiss dann, was zu tun ist.

  • Benutzer-Avatarbild

    Zitat von DerSmurf: „und wo ist die nummer der SA und MV Marken zu speichern?“achmist - das hatte ich vergessen. Also kommando zurück, Besonderheit-Spalte wieder raus, und für jede Art Besonderheit eine eigene Tabelle, mit FK->Artikel. Wenn die Besonderheit der Art ist, dass eine Mitgliedsnr zu speichern ist, kann sie da gespeichert werden. Andere Besonderheiten - etwa der DAV-Aufpreis - das muss die Businesslogik wissen, dass dann der Aufpreis-Artikel mit in die EinkaufPositionen muss - es sche…