vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
sevDataGrid 2.2.142 vs ListView 
Autor: vbfranz
Datum: 06.03.13 08:15

Hallo Dieter, wie kann ich am besten die ListView imitieren?

Ich lese die Daten in einen Zwischenspeicher, daraus erstelle ich die Gridliste.
Zum Ändern der Daten lese ich die Daten aus dem Zwischenspeicher,
ändere die Daten in einer eigenen Form,
speichere die geänderten Daten aus dem inzwischen geänderten Zwischenspeicher,
rufe über einen CallBack die Sub myFaktListe_OnStore auf,
und will nun die Gridliste in der geänderten Zeile ändern.
Ich verwende hier den [u]List_Mode.
Dies ist der ListView-Code:
Private Sub myFaktListe_OnStore(ByVal Fakt As BcFakt, ByVal isNew As Boolean)
    With LV(1)
        If isNew Then
            FillListItem Fakt, Nothing
        Else
            FillListItem Fakt, .SelectedItem
        End If
        Set .SelectedItem = .ListItems("#" & Fakt.id)
    End With
End Sub
Fakt bzw. BcFakt ist ein Objekt, das die Daten enthält.
Bisheriger Code für das Grid:
Private Sub myFaktListe_OnStore(ByVal Fakt As BcFakt, ByVal isNew As Boolean)
    With Grid2
        If isNew Then
            FillListItem Fakt, Nothing
        Else
            FillListItem Fakt, [u].SelectedItem ???
        End If
        Set .SelectedItem = ?????
    End With
End Sub
Wie kann ich [u]".ListItems("#" & Fakt.id)" ersetzen?
[u]"#" & Fakt.id soll einen Key ergeben.
In der ersten Spalte habe ich den Key (GUID) gespeichert und ich kann ihn zusätzlich als Key speichern, wenn nötig.
sID = Fakt.id
Set oItem = Grid2.AddItem(sHelp, , , sID)
anstatt von:
Set oItem = Grid2.AddItem(sHelp)
In sHelp sind alle Spalten einer Zeile enthalten.

Ein kurzer Blick in FillListItem für ListView:
Private Sub FillListItem(ByVal Fakt As BcFakt, ByVal LI As ListItem)
.....
    With LV(1)
        If LI Is Nothing Then
            [u]Set LI = .ListItems.Add(, "#" & Fakt.id, Fakt.Jahr)
        Else
            [u]LI.Text = Fakt.Jahr
        End If
        Set irec = Fakt
        For C = 2 To .ColumnHeaders.Count
            fieldname = .ColumnHeaders(C).Key
            Select Case fieldname
            ....
            Case Else
                LI.SubItems(C - 1) = "" & irec.Field(fieldname)
            End Select
        Next
....
Ich müsste die beiden unterstrichenen Zeilen irgendwie ersetzen.
Der bisherige Code für das Grid:
Private Sub FillListItem(ByVal Fakt As BcFakt, ByVal LI As ListItem)
    Dim oItem   As sevDataGrid2.ListItem
    Dim sHelp   As String
    Dim sID     As String
 
    sID = Fakt.id
    sHelp = sID & vbTab
    sHelp = sHelp & Fakt.FaktNo & vbTab
    ....
    Set oItem = Grid2.AddItem(sHelp, , , sID) '< ergibt den Fehler: 
    ' Schlüssel ist in dieser Auflistung nicht eindeutig!
Wenn ich aber "Set oItem = Grid2.AddItem(sHelp)" verwende, wird die GridListe nicht geändert.
Muss ich da irgendwie mit DoEdit etc. arbeiten?

Bitte um Hilfe
Danke
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevDataGrid 2.2.142 vs ListView1.303vbfranz06.03.13 08:15
Re: sevDataGrid 2.2.142 vs ListView753ModeratorDieter06.03.13 09:13
Re: sevDataGrid 2.2.142 vs ListView708vbfranz06.03.13 09:50
Re: sevDataGrid 2.2.142 vs ListView703vbfranz06.03.13 10:12
Re: sevDataGrid 2.2.142 vs ListView748ModeratorDieter06.03.13 23:43
Re: sevDataGrid 2.2.142 vs ListView697vbfranz07.03.13 08:06

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel