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-2025
 
zurück

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

Fortgeschrittene Programmierung
Flexgrid2HTML Teil 1 
Autor: benne
Datum: 08.03.11 10:34

Public Sub Flexgrid2HTML(strHeaderTitle As String, clsobjGrid As _
  MSFlexGridLib.MSFlexGrid)
    ' Ausgeben eines Flexgrid als HTML
    ' automatischen Auslesen der Breiten und Farben
    ' gleiche Inhalte werden über colspan zusammengefasst
    Dim txt As String
    Dim r As Integer
    Dim c As Integer
    Dim fname As String
    Dim fnum As Integer
    Dim lngForeColor As Long
    Dim lngBackColor As Long
    Dim dblWidth As Single
    Dim strTitle As String
    Dim nColSpan As Long
    Dim bolCheckNextCol As Boolean
    Dim strAlign As String
    Dim lngGridWidth As Long
    Dim strWidth As String
    Dim colData As Collection       ' einzelne Blöcke für den HTML String
    Dim varData As Variant
 
    Dim lngBeginCol As Long
    Dim lngEndCol As Long
 
    Set colData = New Collection
 
    With clsobjGrid
        .Redraw = False         ' Neuzeichnen ausschalten, das bringt sehr viel 
        ' Zeitvorteil
 
        ' Hier kann eine Vorauswahl der Spalten getroffen werden.
        ' Übergabe der Grenzen kann auch über die Funktion übergeben werden
 
        lngBeginCol = 0
        lngEndCol = .Cols - 1
 
        For c = 0 To .Cols - 1
            If c < .FIXEDCOLS Or (c >= lngBeginCol And c <= lngEndCol) Then
                .Col = c
                lngGridWidth = lngGridWidth + .CellWidth    ' Gesamtbreite 
                ' aller Zellen ermitteln
            End If
        Next
        strTitle = "<title>" & strHeaderTitle & "</title>"
        txt = "<HTML><HEAD>" & _
                vbNewLine & _
                strTitle & vbNewLine & _
                "</HEAD><BODY>"
        colData.Add txt
 
 
        txt = "<TABLE " & vbNewLine & "BORDER=1 BGCOLOR=#FFFFFF CELLPADDING=1" & _
          "cellspacing=0 width=100% rules=""all"">" _
            & vbCrLf
 
        colData.Add txt
 
        ' ColGroups für die Spaltenbreiten
        txt = "<colgroup>" & vbNewLine
        For c = 0 To .Cols - 1
            If c < .FIXEDCOLS Or (c >= lngBeginCol And c <= lngEndCol) Then
                lngBackColor = vbWhite
                lngForeColor = vbBlue
                .Col = c
                dblWidth = 120 / CDbl(lngGridWidth) * CDbl(.CellWidth)
                strWidth = dblWidth - Int(dblWidth)
                strWidth = CLng(dblWidth) & "." & Mid$(strWidth, 3, 2)
                txt = txt & "  <col width =" & strWidth & "%>" & vbNewLine
            End If
        Next c
        txt = txt & "</colgroup>" & vbNewLine
 
        colData.Add txt
 
        ' alle  Reihen aufbauen
        For r = 0 To .Rows - 1
            .Row = r
            If .RowHeight(r) > 0 Then
                txt = "<TR>" & vbNewLine
                For c = 0 To .Cols - 1
                    If c < .FIXEDCOLS Or (c >= lngBeginCol And c <= lngEndCol) Then
 
                      .Col = c
                      If c = 0 Then           ' erste Spalte prüfen
                          lngBackColor = vbWhite
                          lngForeColor = vbBlack
                          strAlign = "Left"
                      Else
                          If .CellBackColor = 0 Then
                            lngBackColor = vbWhite
                          Else
                            lngBackColor = .CellBackColor
                          End If
                          lngForeColor = .CellForeColor
 
                          strAlign = "Center"
                      End If
 
                      ' Prüfen, ob nächste Zelle gleich ist
                      nColSpan = 1
                      bolCheckNextCol = True
                      If c < lngEndCol - 1 Then
                          If Len(.Text) > 0 Then
                              While c + nColSpan < .Cols And bolCheckNextCol
                                  If .Text = .TextMatrix(r, c + nColSpan) Then
                                      nColSpan = nColSpan + 1
                                  Else
                                      bolCheckNextCol = False
                                  End If
                              Wend
                          End If
                      End If
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MSFlexGrid3.446rw03.03.11 13:04
Re: MSFlexGrid2.776Zardoz03.03.11 13:23
Re: MSFlexGrid2.796rw07.03.11 08:53
Re: MSFlexGrid2.799benne07.03.11 11:41
Re: MSFlexGrid2.742rw08.03.11 09:48
Re: MSFlexGrid2.758benne08.03.11 10:32
Flexgrid2HTML Teil 12.773benne08.03.11 10:34
FlexGrid2HTML Teil22.722benne08.03.11 10:35
Re: FlexGrid2HTML Teil22.701rw09.03.11 12:28

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-2025 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