Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von C4RL0
Thema: Erstellen von Workflows
Am im Forum: Rund um die Programmierung

Zitat von gfoidl
gibt es irgendwelche Beschränkungen, Voraussetzungen, etc. die du uns mitteilen solltest? Z.B. es muss auf einem Server in eurer Firma laufen, kann in der Cloud sein, Clients sind alle WinForms od. nicht, Datenbank muss SQL Server sein od. nicht. Usw. denn danach richten sich auch die möglichen Empfehlungen / Tipps.

Die Datenbank sollte vorzugsweise eine MS SQL DB sein. Azure Cloud ginge auch ... Im Prinzip wäre eine Webanwendung sicher sinnvoller ... ansonsten wird es ein Rollout einer lokalen Installation der Clients. Ich bin da noch in der Findungsphase.

Na klar habe ich nach "workflow engines" schon gegoogelt, allerdings möchte ich nicht erst alle ausprobieren, wenn hier evtl. jemand sagen kann, welchen er nicht empfehlen kann oder wo z.B. viele Code Snippets existieren und das ganze relativ einfach intuitiv zu erlernen ist. :-)

Thema: Erstellen von Workflows
Am im Forum: Rund um die Programmierung

Hallo zusammen,
ich möchte einen simplen Workflow erstellen. Hintergrund ist das Bearbeiten eines Artikels über mehrere Abteilungen.
Beispiel:
1. Abeteilung 1
2. Abteilung 2 UND 3 UND 4
3. Abteilung 5 wenn 2 UND 3 fertig
4. Abteilung 6 wenn 4 UND 5 fertig
usw...

Jede nachgelagerte Abteilung benötigt X Datensätze der Vorabteilungen, welche mitgeliefert werden müssen, damit die Abteilung arbeiten kann.
Das Ganze soll dann mit einer Reminder-Funktion (Email) ausgestattet werden und eine Statusübersicht jedes Artikels in Tabellarischer Form soll erstellt werden.

I.d.R. arbeite ich mit Windows Forms.

Gibt es Frameworks / Klasse, die soetwas unterstützen oder muss ich alles "zu Fuß" erstellen?
Hat jemand Erfahrung damit?

Thema: Eigenschaften des FontDialog via PropertyGrid ändern
Am im Forum: GUI: Windows-Forms

Ich denke, letzteres werde ich dann wohl umsetzen.
Merci für Deine Hilfe.

Thema: Eigenschaften des FontDialog via PropertyGrid ändern
Am im Forum: GUI: Windows-Forms

Zitat von Th69
... Ich sende dir den Code per PM ...

Yeah, it works. Soweit hab ich ihn zum leben erweckt und mir wird jetzt im FontDialog auch die Option zur Farbauswahl geboten. (war etwas frickelig mit dem Editornamen, da er wohl voll qualifiziert sein muss, deshalb hab ich diesen via


[Editor(typeof(FontEditor), typeof(UITypeEditor))]

geholt. Danke dafür!

Nun folgt gleich die nächste Hürde ... nachdem ich die Schriftfarbe ausgewählt habe, wie lese ich sie aus?
Ich habe ja im ganzen Objekt meiner o.g. Klasse keine derartige Eigenschaft.

Thema: Eigenschaften des FontDialog via PropertyGrid ändern
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

ich habe in einer Form ein PropertyGrid in einer Form untergebracht, welches ich auszugsweise wir folgt fülle:


    class AttributesForPropertyGrid
    {
        [Browsable(true)]
        [ReadOnly(false)]
        [Description("Konfiguration des Headers")]
        [Category("Header")]
        [DisplayName("HeaderFont")]
        public Font HeaderFont { get; set; } = SystemFonts.DefaultFont;
    }


Nun meine Frage dazu:
Wie bekomme ich in dem im PropertyGrid aufpoppenden FontDialog die "ShowColor" Eigenschaft aktiviert, damit ich dort die Schriftfarbe wählen kann?

Thema: Methodennamen dynamisch erstellen / ansprechen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von FZelle
Wofür meinst du denn diese Checkbox zu benötigen?
Um auszuwählen, welche Eigenschaften (persönlichen Daten) in das Objekt "Person" übernommen werden sollen und welche nicht, bevor die Person serialisiert wird.

Im Prinzip bräuchte ich sowas wie eine CheckedTextBox.

Thema: Methodennamen dynamisch erstellen / ansprechen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Naja, ein Denkfehler wäre mir am liebsten.
Im Prinzip sieht es wie folgt aus dahinter:


private void checkBoxVorname_CheckedChanged(object sender, EventArgs e)
{
    if (((CheckBox)sender).Checked)
    {
        this.person.Vorname = this.textBoxVorname.Text;
    }
    else
    {
        this.person.Vorname = null;
    }
}

(Die Person wird hinterher (teilweise) serialisiert, die Textboxen vorher per BindingSource und BindingNavigator aus einer DB gefüllt.) Im Prinzip könnte ich auch alle CheckBoxen mit einer Methode abfragen, habe aber dann das Namenproblem mit den Textboxen. Und so 20 if-thens übereinander möchte ich vermeiden. Ein Schluss von der CheckBox auf die Textbox gelingt mir nicht. Deren Namen zu vergleichen ist ja auch nicht wirklich schick, oder?

Thema: Methodennamen dynamisch erstellen / ansprechen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich habe auf einer Form viele Checkboxes, von denen jeweils das CheckedChanged-Event behandelt wird.
Das Problem ist, dass beim Form_Load natürlich nur die Events gefeuert werden, wo sich der Checked-Status beim initialisieren ändert.

Ich möchte allerdings gerne jedes Event einmal feuern, d.h. jede Methode einmal durchlaufen (und natürlich das jeweilige sender-objekt mitliefern)


checkBox1_CheckedChanged(object sender, EventArgs e)
checkBox2_CheckedChanged(object sender, EventArgs e)
checkBox3_CheckedChanged(object sender, EventArgs e)
.
.
.

Muss / kann ich die anzusprechenden Methodennamen dynamisch erzeugen? Wenn ja, wie? Oder hat jemand eine Alternative, für jede CheckBox der Form das dazugehörige Event auszulösen?

Thema: Wieso verdoppelt sich die ganze SQLite Table, wenn ich update?
Am im Forum: Datentechnologien

Zitat von Abt
Aber ich drücke mich mal vorsichtig aus, dass der ganze Code hier "suboptimal" ist. Er verletzt zig Prinzipien und Empfehlungen; und darüber hinaus untestbar.
Die Aussage ist völlig okay, da weiß ich, dass ich noch was zu tun habe. Mit dem Testen habe ich mich eh zu wenig beschäftigt. ;)
Zitat von Abt
Persönlich weiß ich auch nicht, ob das Grundkonstrukt mit der Verbindungsverwaltung und der DataTable so überhaupt funktionieren kann. Das weiß jemand vielleicht besser, der noch DataTables verwendet (ich seit Jahren nicht mehr).

Was verwendest Du statt DataTables?

Thema: Wieso verdoppelt sich die ganze SQLite Table, wenn ich update?
Am im Forum: Datentechnologien

Also die DT entsteht folgendermaßen:

        internal static DataTable GetDataTable(string tablename)
        {
            using (DataTable dataTable = new DataTable())
            {
                using (SQLiteConnection connection = new SQLiteConnection(_ConnectionString))
                {
                    using (SQLiteCommand command = new SQLiteCommand(connection))
                    {
                        using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(command))
                        {
                            command.CommandText = string.Format("SELECT * FROM {0}", tablename);
                            connection.Open();
                            adapter.Fill(dataTable);
                            connection.Close();
                            return dataTable;
                        }
                    }
                }
            }
        }

Thema: Wieso verdoppelt sich die ganze SQLite Table, wenn ich update?
Am im Forum: Datentechnologien

Moin zusammen,

ich lese eine SQLite DB Tabelle mit "SELECT * ..." in eine DataTable, welche ich per Databinding incl. BindingNavigator an Textboxen binde.
Wenn ich nun mit folgender Methode die DataTable zurückspeichern möchte, verdoppelt sich die DB Tabelle, d.h. es wird nicht geupdatet sondern insertet. Ich weiß nur nicht, warum?

Hat jemand eine Idee?

        public static int SaveDataTable(DataTable DT)
        {
            int rowsUpdated = 0;
            try
            {
                using (SQLiteConnection cnn = new SQLiteConnection(_ConnectionString))
                {
                    
                    using (SQLiteCommand myCommand = cnn.CreateCommand())
                    {
                        myCommand.CommandText = string.Format("SELECT * FROM {0}", DT.TableName);
                        using (SQLiteDataAdapter myDataAdapter = new SQLiteDataAdapter(myCommand))
                        {
                            using (SQLiteCommandBuilder builder = new SQLiteCommandBuilder(myDataAdapter))
                            {
                                cnn.Open();
                                rowsUpdated = myDataAdapter.Update(DT);
                            }
                        }
                    }
                }
                return rowsUpdated;
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
                return rowsUpdated;
            }
        }

Edit: Ich habe festgestellt, dass, wenn ich DT.AcceptChanges() vorher ausführe, obiges nicht passiert. Allerdings werden dann auch keine Changes gespeichert. D.h. wieder kein Update.

Thema: Anwendung beendet sich nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Okay, danke für die Ausführungen.

Zitat von Th69
Du kannst ja vor dem Aufruf noch beliebige Abfragen machen...

Damit hast Du natürlich völlig recht, irgendwie hatte ich das nicht "gesehen".
Damit läüfts prima.

Application.Run(ApplicationContext) werde ich mir mal anschauen, habe ich so noch nie verwendet.

Danke!

Thema: Anwendung beendet sich nicht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,
ich starte eine Forms Anwendung wie folgt um erst mal ohne Fenster zu starten. Erst wenn gewisse Bedingungen vorherrschen, soll die Anwendung sichtbar werden, wenn nicht, mit einer Meldung geschlossen werden.


                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                using(FormMain formMain = new FormMain())
                    Application.Run();

Das Problem ist, dass ich die Anwendung aus der formMain heraus nicht geschlossen bekomme.
Selbst wenn im Konstruktor als erstes

Application.Exit();
steht, läuft die Anwendung weiter.
Was mache ich verkehrt?
Ich habe festgestellt, dass ich mit

Environment.Exit(1);
ans Ziel komme, nur verstehe ich es nicht.

Thema: Nach Lesen aus DB werden Work-Dokument Seiten hochkant gedruckt und haben falsche Seitenzahl
Am im Forum: Office-Technologien

Hallo zusammen,

ich befülle ein Word Dokument mit diversen Daten aus einer DB. Soweit so gut. Aufgrund der Abschnittswechsel in dem doch recht umfangreichen Dokument, kommt es vor, dass:

1. Ab und zu eine Seite hochkant gedruckt wird, statt im Querformat, obwohl dieser Abschnitt als Querformat festgelegt ist.
2. Ab und zu eine Seite von 50 eine falsche Seitennummerierung hat (z.B. Seite 1 von 50, obwohl es eigentlich Seite 28 ist)

Das Verhalten dieser Dokumente war schon vor der Automatisierung so und tritt nur sporadisch auf.
Meine Frage:
Lässt sich 1. oder 2. irgendwie per C# prüfen?
Bei 2. habe ich z.N. das Problem, dass ich zwar PAGE oder NUMPAGES als Felder finde, aber eben nur einmal pro Abschnitt. D.h. das seitenweise prüfen gelingt mir hier nicht.

Thema: Best practice: Exception handling bei Tool generiertem Code
Am im Forum: Grundlagen von C#

Hallo zusammen,

ich connecte einen MS SQL Server. Bislang habe ich das immer "zu Fuß" gemacht, habe nun einmal das bequeme Databinding automatisch generieren lassen indem ich die Verbindung auf die Form gezogen habe.
Nun möchte ich aber ein gescheites Excepion handling haben, d.h. ein schickes Fenster was mir sagt, wenn die DB nicht erreichbar ist.
Was ist hier nun best Practice? Im Auto-Code herum zu schreiben? Eine "partial Class" dran zu hängen? Bislang habe ich Auto-Code immer in Ruhe gelassen. Danke für die Infos.

Thema: Wie kann ich einen Text in Word Dokument einfügen?
Am im Forum: Office-Technologien

Hi, nein, das war mir so nicht bewusst. Genau genommen muss es auch kein Add-In sein, sondern könnte auch eine eigenständige Anwendung werden.
Ich schau mir das OpenXML mal an.

Thema: Wie kann ich einen Text in Word Dokument einfügen?
Am im Forum: Office-Technologien

Hallo zusammen,

ich bin dabei ein VSTO Add in zu erstellen, wo in dieversen auf dotx-Vorlagen basierenden Dokumenten Texte eingefügt werden sollen (größtenteils Produktnummern in Tabellen, etc.).

Soweit wäre das kein Problem, die Frage stellt sich hier nach der robustesten Technik. Mir fallen ad hoc drei Möglichkeiten ein:

  1. Textmarken - Wie schon oft beschrieben, wird hier der entsprechende Text in die Textmarke eingefügt
  2. Formularfelder - Ausfüllen von Eingabefeldern
  3. Tags / Platzhalter - Suchen und Ersetzen vorgegebener Tags wie z.B: <#Tag1#>
  4. ??


Zu erwähnen ist, dass die Vorlagen Kennwortgeschützt sein werden. Vielleicht fallen Euch auch noch bessere Möglichkeiten ein.
Ich bin neugierig, ob es Erfahrungswerte mit der ein oderen anderen Technik vorherrschen bzw. von welcher Ihr mir direkt abraten würdet.

Danke für Info

Thema: Probleme mit der Signatur
Am im Forum: Grundlagen von C#

Hallo zusammen,

ich möchte mich im Bereich der Office-Addins etwas ausprobieren, scheitere aber gerade an einem Signatur-Problem (siehe Screenshot).
Das Problem dabei: Ich weiß nicht, wo ich anpacken soll. Die Microsoft-Seiten zum Thema Zertifizierung sind hier allesamt wenig hilfreich.
Ich habe versucht, die ClickOnce-Signatur zu deaktivieren, vergebens, da sie sich immer wieder aktiviert.
Ich habe versucht, das Projekt lokal zu speichern und auszuführen, vergebens. Ich habe versucht, die Liste der Vertrauenswürdigen Speicherorte im Word zu erweitern, vergebens.
Ich möchte auf jeden Fall vermeiden, ein Zertifikat irgendwo erwerben zu müssen.

Thema: [done] SharpLibZip - Datei in Zip Datei editieren
Am im Forum: Rund um die Programmierung

Ich hab von SharpLibZip auf DotNetZip umgesattelt, irgendwie gefiel mir die lib besser. Mit folgendem Code gelingt mir mein Vorhaben (ich weiß, bei gleichnamigen files wird derzeit nur das erste geändert)


        /// <summary>
        /// Change Content of a single 
        /// </summary>
        /// <param name="myPath">Path to dedicated zip file</param>
        /// <param name="myFile">File to be modified</param>
        public void modifyZippedFile(string myPath, string myFile)
        {
            string fileContent;
            string targetFile = "";
            using (ZipFile zip = ZipFile.Read(myPath))
            {
                foreach (ZipEntry entry in zip.Entries)
                    if (entry.FileName.Contains(myFile))
                        targetFile = entry.FileName;
                ZipEntry e = zip[targetFile];
                using (StreamReader sr = new StreamReader(e.OpenReader(), Encoding.Default, true))
                {
                    fileContent = sr.ReadToEnd();
                    fileContent = modifyContent(fileContent);
                    zip.RemoveEntry(targetFile);
                    zip.AddEntry(targetFile, fileContent);
                    zip.Save();
                }
            }
        }

Thema: [done] SharpLibZip - Datei in Zip Datei editieren
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich frage mich, ob es einen anderen Weg gibt, eine vorhandene Datei in einer Zip-Datei zu editieren ohne das Zip-Paket zwischen zu speichern.

Konkreter möchte ich eine Zahl in einer Textdatei ändern. Diese Textdatei ist neben anderen in einem Zip verpackt.

Oder läüft das nur über "Entpacken (und speichern) - Datei editieren - Packen (und löschen)"?

Für das Zip-Handling verwende ich derzeit SharpZipLib.

Danke für die Antworten.

Thema: Suche Buch mit Programmier-Perlen in C#
Am im Forum: Buchempfehlungen

Hey,

keine Ahnung, ob es das ist, was Du suchst aber ich fand das C#-Codebook ganz hilfreich für den Umstieg:

C# Codebook 2018

(der Link zeigt nicht auf die aktuellste Version, aber um den Inhalt kennen zu lernen sollte er ausreichen)

Thema: Amazon ermöglicht Live-Gesichtserkennung für ganze Städte
Am im Forum: Smalltalk

Zitat von emuuu
Die Bahn geht da aktuell einen recht interessanten Ansatz:
Nach dem Ende des Feldversuchs in puncto Gesichtserkennung sollen die Kameras weiterverwendet werden und das System darauf konditioniert werden "Situationen" zu erkennen und diese dann zu melden.

Schaut Euch mal das Projekt INDECT an. Google wird die passenden Treffer ausspucken. Dieses Projekt fand kaum in den Medien statt.

Thema: Gelöschten Text durchstreichen, hinzugefügten unterstreichen in Datenbank speichern
Am im Forum: GUI: Windows-Forms

Hey SamsonBB,

ich würde Dir empfehlen, mal durchzuschauen, was der Annex 11 des EU-GMP bzw. EU-GCP Leitfadens verlangt.
Als Erläuterung auch das Aide Mémoire zum Annex 11 (einfach googeln) damit Du rechtlich auf der sicheren Seite bist. Ein Solches Audit Trail ist ja durchaus mehr als eine graphische Darstellung in einer Textbox.
Im Klartext: Alter Wert, Neuer Wert, Datum der Änderung, Name des Ändernden und Grund der Änderung müssen nicht editier- und löschbar vorgehalten und regelmäßig gereviewt werden.
Ich würde als Basis für den Audit-Trail eine eigene DB-Tabelle (mindestens) mit entsprechenden Berechtigungen vorhalten. Alles Andere führt in dem Bereich früher oder später zu Ärger.

Thema: UML, Pflichtenheft, Feinspezifikationen vs. agile Methoden
Am im Forum: Smalltalk

Zitat von LaTino
gfoidl:
Zitat von gfoidl
Und da ist schon der (ein) Knackpunkt bei agilen Methoden. Es gibt keine Grundlagen für ein Angebot. Wie soll man sich an einem Ausschreibungsverfahren beteiligen, wenn schon in der Natur der Sache liegt, dass man den Aufwand gar nicht abschätzen kann?

Wenn der Kunde in einem Lastenheft beschreiben kann, was er haben will, kann man auch den Aufwand abschätzen.
Ein Pflichtenheft für ein Angebot beinhaltet doch keine Spezifikation bis in jede Funktion hinein, sondern eine mehr oder weniger grobe Beantwortung der Lasten á la "lösen wir mit unserem Standardmodul xyz" oder "kundenspezifisches Modul".
Wenn das nicht geht, ist das Lastenheft nicht genau genug.

Der Knackpunkt, der m.E. häufiger anzutreffen ist, ist, dass der Kunde nicht genau weiß, was er will. Ein "schaut ja ganz gut aus, aber eigentlich will ich das ganz anders..." sprengt das Projekt häufiger (zumindest ist das meine Erfahrung). Und in diesem Fall ist man mit agilen Methoden viel wendiger.
Oder man bekommt Erfahrung im Change Management. ;)

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Nachdem ich den passenden html-Workshop installiert und das Tool zum laufen bekommen habe, bin ich eigentlich zufrieden mit sharpDox.

Ich fänd es schade, wenn Du das Projekt einstellen würdest. docFX habe ich mir nicht angeschaut. Ich mag Tools, die Intuitiv zu bedienen sind, zumindest was ein erstes schnelles Ergebnis betrifft. Trifft das auf docFX zu? Die Doku lässt auf gegenteiliges schließen, das kann aber auch an mir liegen. ;)

Von meiner Seite aus nochmal großes Lob an Dein Projekt

Thema: .NET Abwärts- bzw- Aufwärtskompatibilität
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

im VS kann ich bekanntermaßen das Zielframework meiner Anwendung auswählen.
Inwiefern ist denn aber z.B. ein gewähltes Zielframework kompatibel zu künftigen Frameworks?

Konkret: Ich wähle 4.0 aus ... voraussichtlich bis zu welcher Version kann ich die Anwendung (Hier: Klassische WinForms Anwendung) verwenden ohne eine extra Runtime installieren zu müssen?

Ist das irgendwo dokumentiert oder anders aus den Versionsbezeichnungen ableitbar?

Hieraus abgeleitete Frage: Ist es strategisch schlau, möglichst das neueste Zielframework auszuwählen um möglichst lange Kompatibilität zu erhoffen oder das passend zu den eingesetzten Komponenten und Klassen niedrigste Framework um mit möglichst vielen Plattformen (die evtl. nicht die neueste Version installiert haben) kompatibel zu sein? Wie verfahrt Ihr hier?

Vielen Dank für die Antworten

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Ich erhalte folgende Fehlermeldung, obwohl der Pfad angegeben wurde und der THML Workshop installiert ist:

Fehler
Could not find the chm compiler. Please set the correct path in the chm settings.
Die Dokumentation konnte nicht erstellt werden.
SharpDox.Build.SDBuildException: Es gab ein Problem mit den Vorraussetzungen eines oder mehrere Exportern. Siehe Bauausgabe für weitere Informationen.
bei SharpDox.Build.Context.Step.ExtendedCheckConfigStep.RunStep(SDProject sdProject)

Thema: der prozess kann nicht auf die datei zugreifen, da sie von einem anderen prozess verwendet wird.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ist es möglich, dass die Methode "rateChanged" ausgelöst wird, wenn du auf den Button drückst, also beide Methoden zeitgleich agieren?

Thema: Werkzeuge zur Lizenzverwaltung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Christel,

das BAFA (Bundesamt für Wirtschaft und Ausfuhrkontrolle) sollte Dir den genauen Anforderungskatalog geben können. Da jede Ausfuhr dieser Güter (Klasse D) genehmigt werden muss, werden die Beamten auch genaue Anforderungsprofile haben.
Falls eine Art "Güte-Lizenz" benötigt wird, würde mich interessieren, welcher Art diese Lizenz / Gütestempel sein muss und wer ihn vergibt.
Es ware nett, wenn Du hierzu noch was posten könntest, nachdem Du das in Erfahrung gebracht hast.

Thema: Werkzeuge zur Lizenzverwaltung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Christel,

bis wann brauchst Du den so ein Werkzeug? Ich arbeite im Moment an exakt so einem Werkzeug, die Fertigstellung wird sich aber sicher noch 6 Monate hinziehen.