Application zum abgleichen eines "Codes" in xls Liste

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Application zum abgleichen eines "Codes" in xls Liste

    Guten Morgen zusammen,


    habe folgendes vor:


    1. eine xls Liste in ein "Formular" Tabelle einlesen
    2. über eine Form "Suchen" eines bestimmten Feldes nach bestimmten Zeichen (7 Zeichen)
    und abgleichen wenn vorhanden soll der Fund markiert werden und mit Bemerkung gespeichert werden
    3. ggf. soll so eine erstellte Liste noch gedruckt werden


    die xls hat 7 Spalten A-G


    IDNr = Typ decimal
    IDNrX = Typ String
    ZSBNr = Typ String
    A13-2E = Typ Integer
    A13-2B = Typ Integer
    Zeit = DateTime


    4. mittels Scanner siehe Punkt 2 Suchen markieren (der Code ist ein 3D-Matrix) Code der gescannt werden soll


    das soll eine kleine Windows Application werden

    wer hat an dem Projekt Lust teil zunehmen bzw. es mit mir zu entwickeln?
    Beispiel XLS Liste ist Verfügbar
    Lg :thumbsup:
    Menorca03
  • Hallo zusammen,

    habe das Projekt begonnen und schon ein bisschen hinbekommen.

    nun möchte ich ja eine Excel Sheet einlesen und im DGV anzeigen bzw. bearbeiten geht das auch?

    per Button die xls Datei auswählen un korrekt einlesen.

    wer kann mir da helfen?

    derzeit mache ich es so im Load Ereignis der Form

    Vbnet-Quellcode

    1. For i As Integer = 0 To 4
    2. dt.Columns.Add("SP_" & CStr(i))
    3. Next i
    4. Dim lines() As String = IO.File.ReadAllLines("D:\Sperrlisten\ex_xls.txt")
    5. For Each line As String In lines
    6. Dim fields() As String = line.Split(" "c)
    7. Dim k As Integer = -1
    8. Dim row As DataRow = dt.NewRow
    9. For Each field As String In fields
    10. If Not field.Trim = "" AndAlso k < 4 Then
    11. k += 1
    12. row(k) = field
    13. End If
    14. Next
    15. dt.Rows.Add(row)
    16. Next
    17. bs.DataSource = dt
    18. 'Populate DataGridView.
    19. DataGridView1.DataSource = bs
    Alles anzeigen
    Dateien
    • Frage_XLS.PNG

      (104,61 kB, 3 mal heruntergeladen, zuletzt: )
    Lg :thumbsup:
    Menorca03
  • Hallo hier ist ja garnichts mehr los?

    ich habe mal bisschen was zurechtgebastelt, aber es gefällt mir noch nicht wirklich

    zum Beispiel habe ich in der DGV eine Checkbox Spalte eingebunden wenn nun der gesuchte Wert gefunden wird soll die Zeile
    in den Sichtbereich scrollen und die entsprechende Checkbox.Checked true gesetzt werden.

    den Wert markiere ich schon, aber wenn der in einem nicht Sichtbaren Bereich der DGV liegt sehe ich die Zeile nicht. Die Checkbox möchte ich zum Zählen der so gefundenen Werte nutzen.

    siehe im CellPainting ( 'Zelle gelb markieren ), das funktioniert aber wie sektiere ich dann die entspechende Zeile? und wie setze ich die Checkbox true im Bild die "Z" Spalte / Celle

    Vbnet-Quellcode

    1. Private Sub DGV_Excel1_CellPainting(sender As Object, _
    2. e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
    3. Handles DGV_Excel1.CellPainting
    4. If e.RowIndex = -1 Or e.ColumnIndex = -1 Then Exit Sub
    5. If Not e.ColumnIndex = search_columnindex Then Exit Sub
    6. If IsDBNull(DGV_Excel1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then Exit Sub
    7. Dim vl As String = _
    8. DGV_Excel1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value.ToString
    9. 'Entspricht der Zellwert einem Suchbegriff (Startswith)
    10. Dim searched As Boolean
    11. For i As Integer = 0 To searchlist.Count - 1
    12. searched = vl.StartsWith(searchlist(i))
    13. If searched Then Exit For
    14. Next i
    15. If searched Then
    16. 'Zelle gelb markieren und eine DGV-Checkbox true stempeln
    17. Using bry As New SolidBrush(Color.Yellow)
    18. e.Graphics.FillRectangle(bry, e.CellBounds)
    19. End Using
    20. e.Paint(e.CellBounds, DataGridViewPaintParts.Border)
    21. e.Paint(e.CellBounds, DataGridViewPaintParts.ContentForeground)
    22. e.Handled = True
    23. End If
    24. End Sub
    Alles anzeigen
    Dateien
    Lg :thumbsup:
    Menorca03
  • ich würde dir gerne helfen nur bin ich dir keine da ich mit excel und datenbanken so meine probleme hab und bei der dgv bin ich froh wenn ich sie füllen kann und was passiert wenn ich wo raufclicke aber das wars dann auch schon.

    Naja das hier nix mehr los is hmm wenn wir das wüsten woran das liegt wäre es nicht so still hier. Denk aber das wegen dem schönen wetter auch kaum einer vorm pc hockt. (hoffe das nur wegen dem wetter so still hier^^)
  • Neue Frage zum Thema.

    siehe Bild:
    06-06-_2017_06-26-09.png
    so durchsuche ich die DGV1 es soll nach Eingabe1 (links) Eingabe2 (rechts) gesucht werden der Treffer soll in DGV2 geschoben werden. Das funzt soweit.
    Nur Wenn Eingabe1 gefunden dann in Zeile Spalte Links den Code schreiben wenn nicht gefunden soll ein Vermerk IO geschrieben werden. Das Ergebnis gefunden nicht gefunden soll also in einer Zeile ausgegeben werden? kann jemand da helfen?

    Vbnet-Quellcode

    1. Dim Seriennummer As String = String.Empty
    2. Dim Fahrgestellnummer As String = tbx_Fahrgestellnummer.Text
    3. Dim ZsbNummer As String = String.Empty
    4. Dim Links As String = String.Empty
    5. Dim Rechts As String = tbx_Eingabe2_BC.Text
    6. Dim aktZellenInhalt As String = String.Empty
    7. Dim anzahl_gefunden As Integer = 0
    8. With DGV
    9. 'alle Zeilen des DataGridView1 durchlaufen
    10. For i = 0 To DGV.Rows.Count - 1
    11. Dim Gefunden As Boolean = False
    12. 'da wir den Frachttyp nur in Spalte 0 (DataGridView1 Spaltenname "Frachttyp") suchen:
    13. 'Inhalt von Spalte 0 in Reihe i
    14. aktZellenInhalt = .Rows(i).Cells(0).Value.ToString
    15. 'prüfen, ob Inhalt die Zeichenkette "Codelinks" enthält (egal ob am Anfang, in der Mitte oder am Ende)
    16. If aktZellenInhalt.ToLower.Contains(CodeRechts.ToLower) Then
    17. 'anzahl_gefunden += 1
    18. 'Inhalt Spalte 0 rausfischen (Sperrliste)
    19. Seriennummer = .Rows(i).Cells(0).Value.ToString
    20. 'Inhalt Spalte 3 rausfischen (ZsbNummer)
    21. ZsbNummer = .Rows(i).Cells(1).Value.ToString
    22. 'beide Spalteninhalte dem DataGridView2 hinzufügen
    23. Dim Auswahl As String() = {Fahrgestellnummer, ZsbNummer, Links, Rechts}
    24. Me.DataGridView2.Rows.Add(Auswahl)
    25. End If
    26. Next i
    27. End With
    Alles anzeigen
    Lg :thumbsup:
    Menorca03