vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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

VB.NET - Ein- und Umsteiger
in FlexGrid Daten eintragen - Backgroundworker oder Delegate? 
Autor: Bazi
Datum: 24.03.14 19:53

Hallo,
ich möchte Daten in ein FlexCell.Grid eintragen. Das dauert manchmal bis zu einer 1/2 Minute. Daher möchte ich das in einen anderen Thread auslagern.

Nun habe ich mich im Netz ein wenig umgesehen, und finde nicht den richtigen Ansatz.

Beim Backgroundworker bräuchte ich so wie ich das verstenden habe keinen Delegaten, jedoch ist mir unklar wie ich da DataRows oder DataTables übergeben kann.

Auf der anderen Seite ist mir aber auch unklar, wie ich das mit einem Delegaten und eigenem Thread bewerkstelligen kann.
Hier ist mal der Code wie ich die Befüllung im Mainthread bisher machte:
Private Sub FGrid_GetData(ByVal OZ As String)
        If BsMassen Is Nothing Then Return
        SetVorgang("Lese Daten zu Position")                        ' Anzeige 
        ' in der Statuszeile
        Dim DT As MassenDataTable = ProjDts.Massen
        Dim DV As New DataView(DT, "OZ LIKE '" & OZ & "'", "Adresse", _
          DataViewRowState.CurrentRows)
 
        Dim Zl As Integer = 0
        Try
            FGrid.Rows = DV.Count + 2
            For r As Integer = 0 To BsMassen.Count - 1
                Zl = r
                If intFN = 0 Then FGrid_SetHeader(FGrid) ' wenn kein Header 
                ' erzeugt wurde, dann jetzt
                FGrid.AutoRedraw = False
                FGrid.DisplayFocusRect = False
                EnableEvents = False
                FGrid.AllowUserResizing = FlexCell.ResizeEnum.Columns
                FGrid.Rows = BsMassen.Count + 2
                Dim MRow = DirectCast(DirectCast(DV.Item(r), DataRowView).Row, _
                  MassenRow)
                If MRow.OZ = aktOZ Then
                    Call Massenrow_to_FGridRow(FGrid, r + 1, MRow)      ' 
                    ' schreibt über eine Untersub die Zeile ins Grid
                    FGrid_Zeilenfomat(r + 1)                            ' passt 
                    ' das Format der Zeile an
                Else
                    FGrid.Rows = FGrid.Rows - 1                         ' eine 
                    ' Zeile abhacken
                End If
                ProgressVorgang(CInt(r / DV.Count * 100))               ' 
                ' Fortschritt anzeigen
            Next
            Dim z As Integer = FGrid.Rows - 1
            For c As Integer = 0 To DT.Columns.Count - 1
                FGrid.Cell(z, c).Text = vbNullString                    ' 
                ' letzte Zeile im Grid als Leerzeile
            Next
            FGrid.AutoRedraw = True
            FGrid.Refresh()
        Catch ex As Exception
            Debug.Print(String.Format("Fehler im Hauptform FGrid_GetData bei" & _
              "Zeile {0}", Zl))
        End Try
        EnableEvents = True
        SetVorgang("Lese Daten zu Position", True)                  ' 
        ' Statuszeile zurücksetzen
    End Sub
Könnt ihr mir bitte auf die Sprünge helfen?

Danke für die Hilfe

Gruß Christian

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
in FlexGrid Daten eintragen - Backgroundworker oder Delegate...2.048Bazi24.03.14 19:53
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.564Manfred X24.03.14 20:05
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.418Bazi24.03.14 20:25
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.475Manfred X24.03.14 21:08
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.419Bazi24.03.14 21:10
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.445Manfred X24.03.14 22:05
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.465Bazi24.03.14 22:11
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.389Manfred X24.03.14 22:30
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.419Bazi25.03.14 09:15
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.436Manfred X25.03.14 16:58
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.414Bazi25.03.14 17:16
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.427Franki27.03.14 02:52
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.439Bazi27.03.14 16:26
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.505ErfinderDesRades24.03.14 20:42
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.442Bazi24.03.14 20:52
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.416effeff30.03.14 23:04
Re: in FlexGrid Daten eintragen - Backgroundworker oder Dele...1.424Bazi31.03.14 07:12

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