BrainHelper (Notiztool)

    • Beta
    • Open Source

    Es gibt 75 Antworten in diesem Thema. Der letzte Beitrag () ist von chenjung.

      Hallo @chenjung,

      ich finde die Idee des Programmes gut so etwas kann man immer mal gebrauchen und ich finde es auch angenehm das das Programm nicht mit unnötigen Funktionen überfüllt ist.

      Verbesserungsvorschläge:
      • verwende für das Datum doch lieber einen DateTimePicker (mit Format: Short) eine textbox ist da meiner Meinung nach ungeeignet.
      • Ich würde evt. die Auswahl der Prio als DropDownStyle = DropDownList einstellen, außer es ist gewollt das es andere Prios geben soll / kann.
      • Es wäre praktisch wenn man schon in der Auswahl der Notiz sieht ob diese Wichtig ist nicht erst nachdem man sie öffnet.
      • Bitte halte das Programm doch einsprachig, Prios hast du auf Englisch Rest auf deutsch dann heißt es Speichern aber Update und nicht Aktualisieren?

      Fehler / Probleme:

      Wie genau funktioniert die suche? Egal was ich dort eingebe ich bekomme einen Fehler? Des weiteren... wenn ich nichts eingebe, warum werde ich nach einer Personalnummer gefragt? Verstehe ich hier etwas falsch?


      Beispiel:

      Hier mal ein Kleines Beispiel evt. hilft es Dir :3

      Unfortunately, this Signature is not available in Germany because it may contain music for which GEMA
      has not granted the respective music rights. Sorry about that.

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Ruerte“ ()

      Hi und danke für deinen Post.

      Die Suche geht nach der Überschrift der Notiz.

      Thema Datum, daran werde ich auch nochmal arbeiten, danke für den Hinweis.

      Das Thema mit der Personalnummer stammt von meinem Copy&Paste *wird korriert*

      Die Prios sollen einzel ausgewählt werden, das ist so richtig. Aber Einsprachig stimmt, daran werde ich arbeiten.

      Wie das mit den ViewTree geht, weiß ich noch nicht, aber deine Idee ist gut, daran sollte ich arbeiten und es mit einbauen. Das gefällt mir schon sehr gut.
      Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
      Die Prios sollen einzel ausgewählt werden, das ist so richtig. Aber Einsprachig stimmt, daran werde ich arbeiten.

      Ich meinte eher das der Benutzer selber einen Status eingeben kann der nicht in der liste steht, deshalb der Vorschlag nur Einträge aus der liste zu erlauben.

      Solltest Du noch wo fragen haben schreib mich sonst mal an dann kann ich Dir versuchen zu helfen.
      Unfortunately, this Signature is not available in Germany because it may contain music for which GEMA
      has not granted the respective music rights. Sorry about that.

      Eigenen Status? Hmm, darüber ließe sich nachdenken :)

      Ich werde am Wochenende die Arbeit wieder aufnehmen und basteln :) Falls fragen kommen, melde ich mich gern bei dir.
      Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
      Ich arbeite weiter am BrainHelper,

      diesmal wird der Ordner C:\Temp beim ersten Start ertellt (muss beim 1. Start als Admin ausgeführt werden).

      Zudem arbeite ich an folgendem:
      - Erweitern der Form für weitere Funktionen (Suchen / Archiv / später weitere Dinge)
      - Suchfunktion wird überarbeitet
      - Das Hinzufügen / Entfernen von eigenen Prios
      - Einträge ins Archiv verschieben und aus der Ansicht entfernen

      In nährer Zukunft:
      - Bezeichnungen in der Listbox farbig darstellen (je nach Prio?)

      In weiter ferne:
      - Cloud Anbindung (Goolge / DrobBox etc. vielleicht auch mein eigener Cloud Service) - hier muss ich mich informieren, bezüglich der API´s der jeweiligen Anbieter.
      - App fürs Handy
      Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!
      Hallo meine lieben,

      ich arbeite zur Zeit weiter am BrainHelper(V2).

      Zur Zeit teste ich die Funktion Archiv - Sprich, wenn eine Notiz seine gültigkeit verloren hat, sodass diese ins Archiv abgelegt werden. Diese Funktion hat sich für mich als wichtig herausgestellt. Daher habe ich diese mit eingefügt.

      Die Suchfunktion & erstellen eigener Prios ist ebenfalls schon im Bau und wird getestet. Dies soll mehr Freiheit für den User geben, eigene Dinge hinzuzufügen. Ebenso an die Anapssung der Farben der Prios, daran wird ebenfalls noch gearbeitet.

      Da ich auf Fensterchaos verzichten will, wird die Form "erweitert" wenn man auf den Button klickt. Daher wird die Form länger. Ebenso kann man die Form dann wieder auf "normal" Größe zurück setzen. Ich finde das ist erstmal die beste Lösung.

      Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!

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

      Hört sich doch cool an! Gibt's vllt auch grafische Updates? Ein schänes FlatUI oder suu?
      Wär was Leckeres :!

      LG
      ~ David
      Bitte benutze OPTION STRICT ON.
      Und optional OPTION EXPLICIT ON.
      Hier ein CODE-CONVERTER.

      Suchanfragen-Ansatz für GOOGLE.
      Prüfe deinen Beitrag in einer RECHTSCHREIBPRÜFUNG.

      Super Tool. Mir war aufgefallen, dass man einen Eintrag mit gleicher Bezeichnung hinzufügen kann. Damit waren zwei in der Liste, aber mit gleichen Notizen/Beschreibungen. Wenn man einen Eintrag löscht, waren beide weg.
      Ich habe das Update und das Löschen mal auf die ID Bezogen.
      Alles was Rot ist Neu oder ausgetauscht. Damit kommt das Tool jetzt schon zum täglichen Einsatz

      Globale Variable
      Dim Eintragauswahl_ID As New List(Of Decimal)


      Form1.Load

      Eintragauswahl_ID.Clear()

      myAdapter.Fill(myDT)
      'For Each Eintrag As DataRow In myDT.Rows
      'auswahl.Items.Add(Eintrag.Item("Bezeichnung").ToString)
      'Next

      For Each Eintrag1 As DataRow In myDT.Rows
      eintragauswahl.Items.Add(Eintrag1.Item("Bezeichnung").ToString)
      Eintragauswahl_ID.Add(Eintrag1.Item("ID"))
      Next

      Datensatz UPDATE
      Dim strSql = "UPDATE Datensatz1 set Bezeichnung='" & bezeichnung.Text & "',Beschreibung='" & beschreibung.Text & "',P='" & P.Text & "' WHERE ID =" & Eintragauswahl_ID(eintragauswahl.SelectedIndex) & " "

      Datensatz LÖSCHEN
      cmd.CommandText = "DELETE ID, Beschreibung, Bezeichnung, Datum, P from Datensatz1 WHERE ID =" & Eintragauswahl_ID(eintragauswahl.SelectedIndex) & " "


      Die Farbe Rot ist der Moderation vorbehalten -> Farbe angepasst
      -Artentus

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

      Hi. Ich hatte grade nochmal Zeit.



      Button Suche und Texteingabe

      VB.NET-Quellcode

      1. Private Sub BT_SUCHE_Click(sender As Object, e As EventArgs) Handles BT_SUCHE.Click
      2. bezeichnung.Text = ""
      3. beschreibung.Text = ""
      4. eintragauswahl.Items.Clear()
      5. P.Items.Clear()
      6. Select Case TB_SUCHE.Text
      7. Case ""
      8. Form1_Load(sender, e)
      9. Case Else
      10. Dim suchen As String = TB_SUCHE.Text
      11. Form1_ReLoad(sender, e, suchen)
      12. End Select
      13. End Sub


      Für die Suche, neue Sub:

      VB.NET-Quellcode

      1. Private Sub Form1_ReLoad(sender As Object, e As EventArgs, ByVal suchen As String)
      2. Dim Suchen_String As String = "%" & suchen & "%"
      3. Dim query As String = "select ID, Beschreibung, Bezeichnung, Datum from Datensatz1 WHERE Bezeichnung LIKE '" & Suchen_String & "'"
      4. Dim myConn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Brain.mdb")
      5. Dim myCommand As New OleDb.OleDbCommand(query, myConn)
      6. Dim myAdapter As New OleDb.OleDbDataAdapter(myCommand)
      7. Dim myDT As New DataTable
      8. Eintragauswahl_ID.Clear()
      9. myAdapter.Fill(myDT)
      10. For Each Eintrag1 As DataRow In myDT.Rows
      11. eintragauswahl.Items.Add(Eintrag1.Item("Bezeichnung").ToString)
      12. Eintragauswahl_ID.Add(Eintrag1.Item("ID"))
      13. Next
      14. Try
      15. eintragauswahl.Text = eintragauswahl.Items(0)
      16. Catch ex As Exception
      17. End Try
      18. datum.Text = Date.Today
      19. End Sub


      Den Ersteintrag für eintragauswahl.text in ein Try legen. Wenn nichts gefunden wird oder die Datenbank leer ist, kommt auch kein Fehler

      Statt in der Bezeichnung zu suchen, kann man über Option Button auch in der Beschreibung suchen.

      *Die Farbe Rot ist der Moderation vorbehalten - Und bitte CodeTags verwenden* ~NoFear23m

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

      caboon schrieb:

      VB.NET-Quellcode

      1. Try
      2. eintragauswahl.Text = eintragauswahl.Items(0)
      3. Catch ex As Exception
      4. End Try


      Was soll das bringen? Lies dir mal das hier durch: TryCatch ist ein heißes Eisen
      Und sehe grad hier ist ja auch Option Strict Off... das sollte man schnellstmöglich ändern: Visual Studio - Empfohlene Einstellungen
      Grüße , xChRoNiKx

      Nützliche Links:
      Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen

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

      Hallo xChRoNiKx,

      ich möchte dir nicht zu nahe treten. Ich bin Hobby Programmierer. Der TE wohl auch. Das Programm ist ein cooles Tool. 1A programmiert oder nicht, ist für mich absolut egal.
      Wenn du meine Begründung zu Try gelesen hättest, würde sich die Frage "was es bringen soll" erübrigen. Ich fange für mich nur den Fehler ab, wenn eben keine Einträge vorhanden sind. Nicht mehr. Nicht weniger.
      Mehr möchte ich gar nicht schreiben, wäre OT.

      Also, beim mir läuft das Tool mit o.g. Anpassungen genau so wie es soll und wird rege genutzt.

      caboon schrieb:

      Ich bin Hobby Programmierer.


      Das ist ja auch Ok. Nur warum nicht gleich "richtig" lernen/arbeiten auch als Hobby Programmierer? Strict Off ist für viele Fehler verantwortlich die mit Strict On hätten gar nicht passieren können.
      Bei deinem Try-Catch könntest du auch ganz einfach vorher mit nem If Abfragen ob etwas vorhanden ist / nicht null ist. So sparst du dir den Try-Catch der evtl. mehr Fehler frisst und diese gar nicht anzeigt.

      @chenjung Da du ja den Code bereitgestellt hast habe ich mir diesen mal angesehen. Option Strict On Projektweit setzten gibt "nur" 6-7 Fehler das sollte ja ausbügel bar sein für dich.
      Desweiteren sind dort Try-Catch Blöcke die so keinen Sinn ergeben.

      Ich nehme mal als Beispiel diesen hier aus Button6_Click:
      Spoiler anzeigen

      VB.NET-Quellcode

      1. Try
      2. 'Auswahl zwischen ja und nein
      3. Select Case MessageBox.Show("Achtung! Die Noitz wird gelöscht", "!!! ACHTUNG !!!", MessageBoxButtons.YesNo)
      4. 'Im Fall Ja
      5. Case Windows.Forms.DialogResult.Yes
      6. con.Open()
      7. reader = cmd.ExecuteReader()
      8. reader.Read()
      9. 'Hier werden die Textfelder mit den jeweiligen Daten gefüllt
      10. eintragauswahl.Text = reader("Bezeichnung").ToString()
      11. 'Verbindung wird geschlossen
      12. con.Close()
      13. 'Im Fall Nein
      14. Case Windows.Forms.DialogResult.No
      15. MessageBox.Show("Mitarbeiterdatensatz wurde nicht gelöscht")
      16. End Select
      17. Catch ex As Exception
      18. MessageBox.Show("Noitz gelöscht")
      19. End Try


      Da sagst du im Catch "notiz gelöscht". Aber das stimmt ja gar nicht, sollte nun beim con.Open() ein Fehler kommen (InvalidOperationException / OleDbException) dann würde dort
      trotzdem stehen Notiz ist gelöscht, und du siehst keine Fehlermeldung und das Programm läuft weiter obwohl evtl. die Verbindung gar nicht zu Stande gekommen ist.

      Exceptions haben da schon ihren Sinn das diese geworfen werden. Und wenn behandelbar dann werden Sie behandelt und wenn nicht dann soll das Programm ja abstürzen damit es nicht zu
      folge Fehlern / evtl. Datenverlust kommt.

      Lies auch du dir evtl. mal die 2 Links in meiner Signatur durch.

      Immer dran denken alles nicht böse gemeint, auch wenn es evtl. so rüberkommen mag. :)
      Grüße , xChRoNiKx

      Nützliche Links:
      Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
      Try Catch ist dann aber immer noch der falsche Ansatz. Man überprüft ob es etwas zum Eintragen gibt und nur dann trägt man etwas ein.
      In dem Beispiel gehst du ja mit einer ForEach über die Rows, also kannst du dort schon eine Aussage treffen ob eintragauswahl überhaupt einen Wert enthält.
      Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
      Hallo ihr lieben,

      ja, ich bin kein Meister in Sachen Programmieren. Vieles habe ich durch Lesen und einfach ausprobieren hinbekommen, ob das nun gut ist, oder nicht, sei mal dahin gestellt.

      @xChRoNiKx: Ich werde mir die Links zu Herzen nehmen, man lernt ja nie aus. Danke für deine Hinweise und Infos.

      @MrTrebron Zusammen mit dem Kommentar von xChRoNiKx werde ich mir das näher ansehen.
      Ihr sucht Webspace für eure Projekte? Dann sagt bescheid - kostenfrei und ohne Werbung!