Doppelte Einträge vermeiden, Datumsvergleich und Icon in Spalten anzeigen

    • VB.NET

      Doppelte Einträge vermeiden, Datumsvergleich und Icon in Spalten anzeigen

      Hallo zusammen !
      Hier wollte ich ein Teil meines Code veröffentlichen, soll irgend-jemand von euch mit einem Tabellen Steuerelemt in berürung kommen.
      Hier ist die Beispiel Code wie man die Doppelte Einträge vermeidet, vergleicht von Datums und wie man in Spalten ICON anzeigen lässt z.b für ein Status

      Beschreibung:
      2 Tabellen flexTabelle und flexEinnerung, in flexTabelle werden Daten eingegeben und Tabelle flexErinnerung befindet sich auf eine andere Form, sobald die Form geladen wird, werden automatisch die Datensätze aus flexTabelle in flexErinnerung eingefügt wenn bis GB bleiben 10, 0, -1(1Tag nach GB) Tage.
      In Tabelle flexErinnerung werden auch mit ICONS die Datensätze angezeigt so zusagen ein Status.
      Ihr könnt die Code auf Ihre weise ändern, hier können nicht nur Datum verglichen sonder auch String, Zahlen oder sonstige Werte.



      VB.NET-Quellcode

      1. ' FLEXTABELLE - TABELLEN STEUERELEMENT (tabelle1)
      2. 'FLEXERINNERUNG - TABELLEN STEUERELEMENT(tabelle2)
      3. 'imgIcon - ImageList
      4. 'ZUERST DIE VARIABLEN DEKLARATION
      5. Dim i As Long
      6. Dim k As Long
      7. Dim lngErinnerungCols As Long
      8. Dim lngTabelleCols1 As Long
      9. Dim lngTabelleCols2 As Long
      10. Dim blnNameVergleichen As Boolean
      11. Dim blnVornameVergleichen As Boolean
      12. Dim lngRow_Zähler_Tabelle As Long
      13. Dim lngRow_Zähler_Erinnerung As Long
      14. Dim strName As String
      15. Dim strVorname As String
      16. Dim strGeburtsTag As String
      17. Dim strGeburtsMonat As String
      18. Dim strGeburtsJahr As String
      19. Dim intDatVorGeburtsTag As Integer
      20. Dim bln_Tage As Boolean
      21. Dim bln_Heute As Boolean
      22. Dim bln_Vergangen As Boolean
      23. Dim lngGeburtsDatum As Date
      24. 'Datum erstellen
      25. strDatum = Date.Now.Date 'heir wierd das Aktuelle Datum z.b 11.07.2007
      26. If flexTabelle.Rows >= 1 Then 'wenn in Tabelle anzahl der Spalten größe oder gleich "1", dann
      27. 'suche
      28. 'Schleifen durchlauf nach Datums in Tabelle1 (flexTabelle)
      29. For lngRow_Zähler_Tabelle = 1 To flexTabelle.Rows - 1
      30. flexTabelle.Row = lngRow_Zähler_Tabelle
      31. flexTabelle.Col = 7 'geburtstag
      32. strGeburtsTag = flexTabelle.Text
      33. flexTabelle.Col = 8 'geburtsmonat
      34. strGeburtsMonat = flexTabelle.Text
      35. lngGeburtsDatum = CDate(strGeburtsTag & "." & strGeburtsMonat)
      36. 'schneide das Datum Links um 5 zeichen, dann 11.07
      37. strDatum = Microsoft.VisualBasic.Left(strDatum, 5)
      38. 'Differenz zwieschen Tage ermitteln
      39. intDatVorGeburtsTag = DateDiff(DateInterval.Day, strDatum, lngGeburtsDatum)
      40. bln_Tage = 10 Like intDatVorGeburtsTag
      41. bln_Heute = 0 Like intDatVorGeburtsTag
      42. bln_Vergangen = -1 Like intDatVorGeburtsTag
      43. 'Wenn eine von Variablen bln_Tage, blnHeute, oder bln_Vergangen Wert True hat dann füge in Tabelle2
      44. ' (flexErinnerung) ein Datensatz zu
      45. If (bln_Tage = True Or bln_Heute = True Or bln_Vergangen = True) And flexErinnerung.Rows = 1 Then
      46. flexErinnerung.Rows = flexErinnerung.Rows + 1
      47. flexErinnerung.RowSel = lngRowMarkierung + 1
      48. 'Schleifen durchlauf in Tabelle1(flexTabelle)
      49. For lngTabelleCols1 = 0 To flexTabelle.Cols - 1
      50. i = lngTabelleCols1
      51. flexTabelle.Col = i
      52. flexErinnerung.set_TextMatrix(flexErinnerung.RowSel, i, flexTabelle.Text)
      53. Next
      54. End If
      55. 'Wenn ein Datensatz vorhanden, und anzahl der Spalten in Tabelle2 (flexEinnerung) größer als "1"
      56. 'und eine von 3 Variablen hat den Wert True dann prüfe ob der Datensatz
      57. 'in Tabelle2 (flexEinnerung) bereits exisistiert
      58. If (bln_Tage = True Or bln_Heute = True Or bln_Vergangen = True) And flexErinnerung.Rows >= 2 Then
      59. For lngRow_Zähler_Erinnerung = 1 To flexErinnerung.Rows - 1
      60. flexErinnerung.Row = lngRow_Zähler_Erinnerung
      61. 'Schleifen durchlauf in Tabelle2 (flexEinnerung)
      62. For lngErinnerungCols = 0 To flexErinnerung.Cols - 1
      63. flexErinnerung.Col = lngErinnerungCols
      64. 'Name und Vorname werden aus Tabelle1(flexTabelle) entnommen
      65. strName = flexTabelle.get_TextMatrix(lngRow_Zähler_Tabelle, 5)
      66. strVorname = flexTabelle.get_TextMatrix(lngRow_Zähler_Tabelle, 6)
      67. blnNameVergleichen = strName Like flexErinnerung.Text
      68. blnVornameVergleichen = strVorname Like flexErinnerung.Text
      69. ' Wenn Datensatz exisistiert dann verlasse die Schleife
      70. If blnNameVergleichen = True And blnVornameVergleichen = True Then Exit For
      71. Next
      72. Next
      73. 'Wenn Datensatz in Tabelle2 (flexEinnerung) nicht exisistiert dann
      74. ' füge aus Tabelle1 (flextabelle) in Tabelle2 (flexerinnerung) ein Datensaz zu
      75. If blnNameVergleichen = False And blnVornameVergleichen = False Then
      76. flexErinnerung.Rows = flexErinnerung.Rows + 1
      77. flexErinnerung.RowSel = lngRowMarkierung + 1
      78. 'Schleifen durchlauf in Tabelle1 (flexTabelle)
      79. For lngTabelleCols2 = 0 To flexTabelle.Cols - 1
      80. k = lngTabelleCols2
      81. flexTabelle.Col = k
      82. flexErinnerung.set_TextMatrix(flexErinnerung.RowSel, k, flexTabelle.Text)
      83. Next
      84. End If
      85. End If
      86. Next
      87. End If




      Mit die Code kann ich mit ICONs in jede Spalte den Status signalisieren

      VB.NET-Quellcode

      1. Dim Icon As Integer
      2. Dim strGeburtsTag As String
      3. Dim strGeburtsMonat As String
      4. Dim lngGeburtsDatum As Date
      5. Dim Z1 As Long
      6. If flexErinnerung.Rows >= 1 Then
      7. 'Schleife durchlauf und prüfe bis GB Tage, weise ein ICON zu
      8. For Z1 = 1 To flexErinnerung.Rows - 1
      9. flexErinnerung.Row = Z1
      10. flexErinnerung.Col = 7
      11. strGeburtsTag = flexErinnerung.Text
      12. flexErinnerung.Col = 8
      13. strGeburtsMonat = flexErinnerung.Text
      14. lngGeburtsDatum = CDate(strGeburtsTag & "." & strGeburtsMonat)
      15. strDatum = Microsoft.VisualBasic.Left(strDatum, 5)
      16. Icon = DateDiff(DateInterval.Day, strDatum, lngGeburtsDatum)
      17. If Icon = 0 Then
      18. flexErinnerung.Col = 19
      19. flexErinnerung.CellPicture = imgIcon.Images(1)
      20. End If
      21. If Icon >= 1 Then
      22. flexErinnerung.Col = 19
      23. flexErinnerung.CellPicture = imgIcon.Images(0)
      24. End If
      25. If Icon <= -1 Then
      26. flexErinnerung.Col = 19
      27. flexErinnerung.CellPicture = imgIcon.Images(2)
      28. End If



      Mfg Alex


      Edit by Agent:
      -> Titel "Source Code" ist zu allgemein -> geändert
      -> Topic ins "SourceCode Austausch" verschoben

      Dieser Beitrag wurde bereits 14 mal editiert, zuletzt von „Alex2000“ ()