Всем привет.
Есть скрипт который генерирует HTML файл из списка ListView.
При запуска скрипта, считываться HTML файл и отображается на форме, потом при добавлении строк в ListView, эти скроки так же добавляются HTML.
Подскажите как можно получить полный HTML код после того как добавились все строки?
Есть скрипт который генерирует HTML файл из списка ListView.
При запуска скрипта, считываться HTML файл и отображается на форме, потом при добавлении строк в ListView, эти скроки так же добавляются HTML.
Подскажите как можно получить полный HTML код после того как добавились все строки?
Код:
#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiStatusBar.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Global $sOrdersHTMLTemplate = @ScriptDir & "\orders_html_template.html"
$hApp = GUICreate("HTM", 800, 500, -1, -1)
$cOrdersList_Add = GUICtrlCreateButton("Add Order To List", 5, 5, 110, 25, BitOR($BS_CENTER,$BS_VCENTER,$BS_FLAT))
$cOrdersHTML_View = GUICtrlCreateButton("View HTML Source", 120, 5, 110, 25, BitOR($BS_CENTER,$BS_VCENTER,$BS_FLAT))
#Region Orders List
$cOrdersList = GUICtrlCreateListView("", 5, 35, 790, 120, BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_NOSORTHEADER), $WS_EX_STATICEDGE)
_GUICtrlListView_SetExtendedListViewStyle($cOrdersList, BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
_GUICtrlListView_InsertColumn($cOrdersList, 0, "#", 30, 2)
_GUICtrlListView_InsertColumn($cOrdersList, 1, "Invoice Number", 110, 2)
_GUICtrlListView_InsertColumn($cOrdersList, 2, "Address", 0, 0)
_GUICtrlListView_InsertColumn($cOrdersList, 3, "Invoice Amount", 110, 2)
Dim $iCnt = _GUICtrlListView_GetColumnCount($cOrdersList), $iColW = 770
For $c = 0 To $iCnt
$iColW -= _GUICtrlListView_GetColumnWidth($cOrdersList, $c)
Next
_GUICtrlListView_SetColumnWidth($cOrdersList, 2, $iColW)
#EndRegion Orders List
#Region Orders HTML
$oOrdersList = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oOrdersList, 5, 170, 790, 300)
$oOrdersList.Navigate($sOrdersHTMLTemplate)
#EndRegion Orders HTML
#Region Status Bar
$cSBar = _GUICtrlStatusBar_Create($hApp)
_GUICtrlStatusBar_SetParts($cSBar, StringSplit("-1", "|", 2))
_GUICtrlStatusBar_SetText($cSBar, "Ready.", 0)
#EndRegion Status Bar
$hHTMLSourceWnd = GUICreate("HTML Source", 800, 500, -1, -1)
$cHTMLSource = GUICtrlCreateEdit("", 5, 5, 790, 490, BitOR($GUI_SS_DEFAULT_EDIT, $ES_READONLY))
GUISetState(@SW_SHOW, $hApp)
While 1
$aMsg = GUIGetMsg(1)
Switch $aMsg[1]
Case $hApp
Switch $aMsg[0]
Case 0
ContinueLoop
Case $cOrdersList_Add
_OrdersList_Add()
Case $cOrdersHTML_View
_OrdersList_HTML_Source_View()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Case $hHTMLSourceWnd
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $hHTMLSourceWnd)
EndSwitch
EndSwitch
WEnd
Func _OrdersList_Add()
Local $iNumner = _GUICtrlListView_GetItemCount($cOrdersList)
Local $iInvoiceNumber = StringFormat("%05d", Random(1, 99999, 1))
Local $iInvoiceAmount = StringFormat("%04d", Random(1, 9999, 1))
$iNumner += 1
$iIn = _GUICtrlListView_InsertItem($cOrdersList, $iNumner) ; #
_GUICtrlListView_SetItemText($cOrdersList, $iIn, $iInvoiceNumber, 1) ; Invoice Number
_GUICtrlListView_SetItemText($cOrdersList, $iIn, "Address " & $iNumner, 2) ; Address
_GUICtrlListView_SetItemText($cOrdersList, $iIn, $iInvoiceAmount, 3) ; Invoice Amount
_OrdersList_HTML_View($iIn)
EndFunc
Func _OrdersList_HTML_View($_iAddedIn)
Local $oDoc = $oOrdersList.Document
Local $iColCount = _GUICtrlListView_GetColumnCount($cOrdersList)
$oTBody = $oDoc.GetElementById("tbody")
$oTRow = $oTBody.InsertRow(-1)
For $iCol = 1 To $iColCount
$sOrderData = _GUICtrlListView_GetItemText($cOrdersList, $_iAddedIn, $iCol - 1)
If $sOrderData = "" Then $sOrderData = " "
$oTRow.InsertCell($iCol - 1).InnerHTML = $sOrderData
$oTRow.InsertCell(4).InnerHTML = " "
$oTRow.InsertCell(5).InnerHTML = " "
Next
EndFunc
Func _OrdersList_HTML_Source_View()
GUICtrlSetData($cHTMLSource, "")
; GUICtrlSetData($cHTMLSource, $oOrdersList.Document.Body.InnerHTML) ; Показывает только Table
GUICtrlSetData($cHTMLSource, $oOrdersList.Document.Body.OuterHTML) ; Показывает Body и Table
GUISetState(@SW_SHOW, $hHTMLSourceWnd)
EndFunc
Код:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body { padding: 0px; margin: 1px; font-family: Tahoma, Geneva, sans-serif; font-size: 10pt; text-align: center; }
table { padding: 0px; margin: 0px; width: 100%; table-layout: fixed; text-align: center; vertical-align: middle; border: 1px Solid #000000;}
.tl { text-align: left;}
.tc { text-align: center;}
.tr { text-align: right;}
</style>
<script language=jscript event=oncontextmenu for=document defer type=text/javascript>return false</script>
</head>
<body>
<table cellpadding="1" cellspacing="0" border="1">
<thead><tr height="50">
<th width="05%">#</th>
<th width="10%">Order / Invoice
Number</th>
<th width="15%">Address</th>
<th width="10%">Invoice
Amount</th>
<th width="10%">Received
Amount</th>
<th width="10%">Delivered
Y/N</th>
</tr></thead>
<tbody id="tbody">
</tbody>
</table>
</body></html>