<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; HTA+VBS+ActiveX Старый добрый ListView]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6213&amp;type=atom" />
	<updated>2012-01-02T12:39:34Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6213</id>
		<entry>
			<title type="html"><![CDATA[Re: HTA+VBS+ActiveX Старый добрый ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=55240#p55240" />
			<content type="html"><![CDATA[<p>Ответ найден.</p><div class="codebox"><pre><code>
Sub ListView1_DblClick()
msgbox ListView1.SelectedItem.ListSubItems(1) &amp; ListView1.SelectedItem.ListSubItems(2) &amp; ListView1.SelectedItem.ListSubItems(3)
End Sub</code></pre></div><p>Таким образом можно выяснить содержимое контрола.</p>]]></content>
			<author>
				<name><![CDATA[Mat Skywalker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26275</uri>
			</author>
			<updated>2012-01-02T12:39:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=55240#p55240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA+VBS+ActiveX Старый добрый ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51685#p51685" />
			<content type="html"><![CDATA[<p>Код HTA приложение &quot;Генерация алкогольной декларации&quot;:</p><div class="codebox"><pre><code>&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=windows-1251&quot;&gt;
&lt;hta:application id=&quot;hta&quot; applicationname=&quot;AlcDeclList&quot;
contextmenu=&quot;yes&quot;
innerborder=&quot;no&quot;
maximizebutton=&quot;yes&quot;
minimizebutton=&quot;yes&quot;
navigable=&quot;yes&quot;
scroll=&quot;no&quot;
scrollflat=&quot;yes&quot;
selection=&quot;no&quot;
showintaskbar=&quot;yes&quot;
singleinstance=&quot;no&quot;
sysmenu=&quot;yes&quot;
version=&quot;1.0&quot;
windowstate=&quot;normal&quot;
&gt;
&lt;title&gt;Поставщики&lt;/title&gt;
&lt;style&gt;
Body            {
                    background-color: buttonface;
                    font-family: Arial;
                    font-size: 14;
                    cursor: arrow;
                  }
&lt;/style&gt;
&lt;script language=&quot;vbscript&quot;&gt;

Function Fill_Dict_TextBox() &#039;Вызов диалога
    dim objDic
    Set objDic = CreateObject(&quot;Scripting.Dictionary&quot;)
    objDic.Add &quot;Description&quot;, &quot;Заполните реквизиты поставщика&quot;
    objDic.Add &quot;OwID&quot;, ListView1.SelectedItem.Text
    objDic.Add &quot;BtnFinish&quot;, True
    Set Fill_Dict_TextBox = objDic
    set objDic = Nothing
End Function

Sub Window_Onload &#039;Заполнение заголовков
 
    ListView1.ColumnHeaders.Add , , &quot;Id&quot;, 35
    ListView1.ColumnHeaders.Add , , &quot;Наименование&quot;, 170
    ListView1.ColumnHeaders.Add , , &quot;Серия&quot;, 70
    ListView1.ColumnHeaders.Add , , &quot;Номер&quot;, 70
    ListView1.ColumnHeaders.Add , , &quot;Дата&quot;, 90
    ListView1.ColumnHeaders.Add , , &quot;Кем выдана&quot;, 140
    ListView1.ColumnHeaders.Add , , &quot;Субьект РФ&quot;, 100
    ListView1.ColumnHeaders.Add , , &quot;Код страны&quot;, 90
    self.Focus()
End Sub

Sub ListView1_KeyPress(Key) &#039;Недопиленый кусок для поиска по первой букве наименования
FndIt = Chr(key)
end Sub

Sub ListView1_ColumnClick(ColumnHeader) &#039; Сортировка по содержимому столбца
Location.Reload(True)
    With ListView1
        .Sorted = False
        .SortKey = ColumnHeader.Index - 1
        If .SortOrder = 0 Then
            .SortOrder = 1
        Else
            .SortOrder = 0
        End If
        .Sorted = True
    End With
End Sub

 Sub AddItem(ID, Name, Serial, Number, Dat, Kv, Subekt, Kod) &#039; Добавление данных
            With ListView1.ListItems.Add(, , ID)
                With .ListSubItems
                    .Add ,, Name
                    .Add ,, Serial
                    .Add ,, Number
                    .Add ,, dat
                    .Add ,, Kv
                    .Add ,, Subekt
                    .Add ,, Kod
                End With
            End With
        End Sub
        
Sub ListView1_DblClick() &#039;Реакция на двойной клик
&#039;msgbox ListView1.SelectedItem.Text
    varReturn = window.ShowModalDialog(&quot;OwForm.hta&quot;, Fill_Dict_TextBox, &quot;dialogHeight:300px;dialogWidth:400px&quot;) 
ListView1.ListItems.Clear()
    call ReadSQLdata    &#039;Вызов чтения из БД. Нужен чтобы обновить содержимое таблицы перезаполняя её.
&#039; Тут то собака зарыта. Если бы получилось затолкать измененные данные в ListView, но не выходит.
end sub
&lt;/script&gt;
&lt;body scroll=&quot;NO&quot; style=&quot;text-align: center&quot;&gt;
   &lt;OBJECT ID=&quot;ListView1&quot; WIDTH=800 HEIGHT=450
 CLASSID=&quot;CLSID:BDD1F04B-858B-11D1-B16A-00C0F0283628&quot;&gt;
    &lt;PARAM NAME=&quot;_ExtentX&quot; VALUE=&quot;21167&quot;&gt;
    &lt;PARAM NAME=&quot;_ExtentY&quot; VALUE=&quot;13229&quot;&gt;
    &lt;PARAM NAME=&quot;SortKey&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;View&quot; VALUE=&quot;3&quot;&gt;
    &lt;PARAM NAME=&quot;LabelEdit&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;Sorted&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;LabelWrap&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;HideSelection&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;OLEDragMode&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;OLEDropMode&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;AllowReorder&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;FullRowSelect&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;GridLines&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;HoverSelection&quot; VALUE=&quot;-1&quot;&gt;
    &lt;PARAM NAME=&quot;_Version&quot; VALUE=&quot;393217&quot;&gt;
    &lt;PARAM NAME=&quot;ForeColor&quot; VALUE=&quot;-2147483640&quot;&gt;
    &lt;PARAM NAME=&quot;BackColor&quot; VALUE=&quot;-2147483643&quot;&gt;
    &lt;PARAM NAME=&quot;Appearance&quot; VALUE=&quot;0&quot;&gt;
    &lt;PARAM NAME=&quot;OLEDragMode&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;OLEDropMode&quot; VALUE=&quot;1&quot;&gt;
    &lt;PARAM NAME=&quot;NumItems&quot; VALUE=&quot;0&quot;&gt;

&lt;/OBJECT&gt;

    &lt;script language=&quot;vbscript&quot;&gt;
call ReadSQLdata
    Sub ReadSQLdata
 Set IBConn = CreateObject(&quot;ADODB.Connection&quot;)   
        Set WshShell = CreateObject(&quot;WScript.Shell&quot;) 
        Set objShell = CreateObject(&quot;Shell.Application&quot;) 
        Set objFolder = objShell.Namespace(WshShell.CurrentDirectory)
        Set objFolderItem = objFolder.Self
        Set DBConn = CreateObject(&quot;ADODB.Connection&quot;)   
        Set objFS = CreateObject(&quot;Scripting.FileSystemObject&quot;)
        Path = objFolderItem.Path + &quot;\&quot;
        strFilePath = Path+&quot;fb.ini&quot; &#039; База данных Firebird
        Set objTS = objFS.OpenTextFile(strFilePath, 1)
        objTS.SkipLine
        objTS.SkipLine
&#039;===================================
         Udlread=objTS.Readline &#039; Читаем параметры подключения
         IBConn.Open(Udlread)
         strFilePath = Path+&quot;OWqery.sql&quot;
         Set SQLf = objFS.OpenTextFile(strFilePath, 1) 
         SQLstr = SQLf.ReadAll &#039; Читаем файл с запросом
         Set objRecordset = IBConn.Execute(SQLstr) &#039; Выполняется запрос
&#039;===================================                                               
Dim Qery (10)
 While Not objRecordset.EOF 
    For i=1 To objRecordset.Fields.Count
        If IsNull( objRecordset.Fields(i-1).Value) Then
            Qery(i) =  &quot;&quot;
        Else
            Qery(i) = Cstr(objRecordset.Fields(i-1).Value)
        End If
    Next
        Call Additem (Qery(1), Qery(2), Qery(3), Qery(4), Qery(5), Qery(6), Qery(7), Qery(8))&#039;Запрос возвращает 8 элементов, которые мы пишем в таблицу
        objRecordset.MoveNext
 Wend    

end sub
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre></div><p>Такой вот код.</p>]]></content>
			<author>
				<name><![CDATA[Mat Skywalker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26275</uri>
			</author>
			<updated>2011-09-19T17:37:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51685#p51685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA+VBS+ActiveX Старый добрый ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51679#p51679" />
			<content type="html"><![CDATA[<p><strong>Mat Skywalker</strong>, если Вы приведёте готовый к употреблению код — возможно, найдутся желающие посмотреть.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-09-19T14:52:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51679#p51679</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA+VBS+ActiveX Старый добрый ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51677#p51677" />
			<content type="html"><![CDATA[<p>Вопрос еще остается актуальным.</p>]]></content>
			<author>
				<name><![CDATA[Mat Skywalker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26275</uri>
			</author>
			<updated>2011-09-19T14:13:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51677#p51677</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[HTA+VBS+ActiveX Старый добрый ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=51475#p51475" />
			<content type="html"><![CDATA[<p>Как добавлять и сортировать записи в ListView я разобрался. НО появился более сложный вопрос, как получить записи из таблицы?<br /><a href="http://msdn.microsoft.com/ru-ru/library/1x4396ba.aspx">http://msdn.microsoft.com/ru-ru/library/1x4396ba.aspx</a> сколько не пробовал вытаскивать коллекции значений, получается получить только 1-й элемент ListViewItem.ListViewSubItemCollection.Item<br />Имеется ListView с данными, добавляем:<br /></p><div class="codebox"><pre><code> Sub AddItem(id,Dat, Tim, Dur, Kino, Nam)
With ListView1.ListItems.Add(, , id)
  With .ListSubItems
  .Add ,, Dat
  .Add ,, Tim
  .Add ,, Dur
  .Add ,, Kino
  .Add ,, Nam
  End With
End With
        End Sub</code></pre></div><p>Сортировка данных:<br /></p><div class="codebox"><pre><code>Sub ListView1_ColumnClick(ColumnHeader)
With ListView1
 .Sorted = False
 .SortKey = ColumnHeader.Index - 1
 If .SortOrder = 0 Then
 .SortOrder = 1
 Else
 .SortOrder = 0
 End If
 .Sorted = True
End With
End Sub</code></pre></div><p>Далее, сортируем, изменяем содержимое. Причем изменить содежимое получилось у меня только <strong>перечитыванием</strong> данных. Как менять конкретную строку в таблице, я не разобрался.<br />Вопрос: как считать из ListView отсортированные, измененные данные?</p>]]></content>
			<author>
				<name><![CDATA[Mat Skywalker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26275</uri>
			</author>
			<updated>2011-09-13T06:02:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=51475#p51475</id>
		</entry>
</feed>
