_ListView_HTMLprint

  • _ListView_HTMLprint dient zur Darstellung von Tabellen und Generierung einer Druckvorschau die optimal auf die Seitenbreite formatiert ist und im Hoch- oder Querformat ausgegeben werden kann. Auch das Einrichten der Kompletten Seite vor dem Ausdruck ist möglich.

    _ListView_HTMLprint
    [autoit]


    #region - TimeStamp
    ; 2011-05-06 11:08:15
    #endregion - TimeStamp
    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIListView.au3>
    Global $titel = "_ListView_HTMLprint"
    _Example()

    [/autoit] [autoit][/autoit] [autoit]

    Func _Example()
    Local $GUI, $ListView, $Columns = 12
    $GUI = GUICreate($titel, 400, 300)
    $ListView = _GUICtrlListView_Create($GUI, "", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    For $A = 0 To $Columns - 1
    _GUICtrlListView_InsertColumn($ListView, $A, "Überschrift " & $A + 1, 50)
    Next
    For $A = 0 To 99
    _GUICtrlListView_AddItem($ListView, Chr(Random(65, 90)) & " - Zeile " & $A + 1 & ": Spalte 1", $A)
    For $B = 1 To $Columns
    _GUICtrlListView_AddSubItem($ListView, $A, "Zeile " & $A + 1 & ": Spalte " & $B + 1, $B)
    Next
    Next
    MsgBox(262144 + 64, "Information", "Hoch- oder Querformat in der Druckvorschau wählen !" _
    & @TAB & @CRLF & "(Browser-Menü => Datei => Druckvorschau ... )" & @CRLF & @CRLF & _
    'Die Komplette Seite einrichten in "Seite einrichten" !' & @CRLF & "(Browser-Menü => Datei => Seite einrichten ... )")
    Local $PrintOut = _ListView_HTMLprint($ListView, @ScriptDir & "\ListView_HTMLprint.html")
    ShellExecuteWait($PrintOut)
    FileDelete($PrintOut)
    EndFunc ;==>_Example

    [/autoit] [autoit][/autoit] [autoit]

    ; #_ListView_HTMLprint# =========================================================================================================
    ; Hinweis........: Die Funktion "_GUICtrlListView_PrintOut", im englischen Forum kann nicht mit dt. Umlauten umgehen und
    ; reagiert auch nicht auf das Hoch- oder Querformat. Die Funktion "_GUICtrlListView_PrintOut" wurde von mir angepasst!

    [/autoit] [autoit][/autoit] [autoit]

    ; Title .........: _ListView_HTMLprint
    ; AutoIt Version : v3.2.12.1 oder höher
    ; Language ......: Deutsch
    ; Description ...: ListView-Inhalte als HTML-Datei speichern und ausdrucken.
    ; Note ..........: Ein Ausdruck in Hoch- oder Querformat und das Einrichten der Kompletten Seite ist möglich
    ; Author(s) .....: Ritzelrocker04
    ; Remarks .......:
    ; ===============================================================================================================================
    Func _ListView_HTMLprint($hListView, $hFileName)
    Local $HTMLBody, $HTMLBody_End, $Index, $HTMLColumns, $aColumn
    Local $iItemCount = _GUICtrlListView_GetItemCount($hListView)
    Local $iColumnCount = _GUICtrlListView_GetColumnCount($hListView)

    [/autoit] [autoit][/autoit] [autoit]

    $HTMLColumns = '<table border="1" width="100%">' & @CRLF & _ ; ListView Columns
    '<colgroup span="' & $iColumnCount & '"></colgroup>' & @CRLF & '<tr>' & @CRLF
    For $A = 0 To $iColumnCount - 1
    $aColumn = _GUICtrlListView_GetColumn($hListView, $A)
    $HTMLColumns &= @TAB & '<th>' & $aColumn[5] & '</th>' & @CRLF
    Next
    $HTMLColumns &= '</tr>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    For $A = 0 To $iItemCount - 1 ; ListView Items.
    $Index = _GUICtrlListView_GetItemText($hListView, $A)
    If $iColumnCount > 0 Then
    For $B = 1 To $iColumnCount - 1
    $HTMLBody_End &= @TAB & '<td>' & _GUICtrlListView_GetItemText($hListView, $A, $B) & '</td>' & @CRLF
    Next
    Else
    $HTMLBody_End = @CRLF & '</tr>' & @CRLF
    EndIf
    $HTMLBody &= '<tr>' & @CRLF & _
    @TAB & '<td>' & $Index & '</td>' & @CRLF & _
    $HTMLBody_End & @CRLF & _
    '</tr>' & @CRLF
    $HTMLBody_End = ""
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Local $HTMLHeader = '<html>' & @CRLF & '<head>' & @CRLF & _
    '<title>' & $titel & ' - Druckansicht' & '</title>' & @CRLF & _
    '</head>' & @CRLF & @CRLF & '<body>' & @CRLF & _
    '<h3>' & $titel & '</h3>' & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Local $HTMLFooter = '</table>' & @CRLF & '</body>' & @CRLF & '</html>'

    [/autoit] [autoit][/autoit] [autoit]

    Local $hFileOpen = FileOpen($hFileName, 2)
    FileWrite($hFileOpen, $HTMLHeader & $HTMLColumns & $HTMLBody & $HTMLFooter)
    FileClose($hFileOpen)
    If Not @error Then Return $hFileName
    Return SetError(1, 1, $hFileName)
    EndFunc ;==>_ListView_HTMLprint
    ; Ende

    [/autoit]


    Danke für die bisherigen 57 downloads.
    Viel Spaß wünscht Ritzelrocker04!

  • Hallo,
    der generierte HTML-Quellentext ist nicht vollständig korrekt:

    • PHP
      </head><h3>_ListView_HTMLprint</h3><body>

      Der H3-Tag muss in den Body.

    • PHP
      <head>...</head><body>...</body>

      Alles muss in einen HTML-Tag.

    Magnus

    Magnus