Печать ListView

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sorch
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 13.01.2006 (Пт) 10:42
Откуда: Петербург

Печать ListView

Сообщение Sorch » 10.01.2007 (Ср) 13:06

Как вывести на печать содержимое ListView? Положил ListView, заполненною данными на форму и отправил форму на печать (Me.PrintForm), итог ListView пустой

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.01.2007 (Ср) 13:11

Код: Выделить всё
Dim lst as MScomctl.ListItem

Printer.Print "ListView contents:"
For each lst in ListView1.ListItems
    Printer.Print vbtab & lst.Text
Next
Printer.End

Sorch
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 13.01.2006 (Пт) 10:42
Откуда: Петербург

Сообщение Sorch » 10.01.2007 (Ср) 13:38

Чуть пришлось изменить:
Dim lst As MSComctlLib.ListItem
Printer.Print "ListView contents:"
For Each lst In ListView1.ListItems
Printer.Print vbTab & lst.Text
Next
Printer.EndDoc

но данный метод выводит почему то только первый столбец, да и данные нужны в виде таблицы

Sorch
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 13.01.2006 (Пт) 10:42
Откуда: Петербург

Сообщение Sorch » 10.01.2007 (Ср) 14:15

method or data member not found
В принципе все равно как выводить, может есть примеры работы с excel или html?

Sorch
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 13.01.2006 (Пт) 10:42
Откуда: Петербург

Сообщение Sorch » 10.01.2007 (Ср) 15:49

из listView

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.01.2007 (Ср) 17:54

гм... ListView сам порождает данные? Однако...
Весь мир матрица, а мы в нем потоки байтов!

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.01.2007 (Ср) 18:08

Код: Выделить всё
Dim f as Integer
Dim s as String
Dim lst As ListItem
Dim lsi As ListSubItem

f=FreeFile
Open App.Path & "\listviewcontent.htm" For Output As #f
Print #f, "<html><head><title>"
Print #f, "Содержимое списка"
Print #f, "</title></head><body><table align=center border=1 width=90% height=80% cellspacing=0 cellpading=0>"

For Each lst In Me.ListView1.ListItems

    s="<tr><td>" & lst.text & "&nsbp;</td>"

    For Each lsi In lst.ListSubItems
         s=s & "<td>" & lsi.Text & "&nbsp;</td>"
    Next

    Print #f, s & "</tr>"

Next


Print #f, "</table></body></html>"
Close #f

Sorch
Новичок
Новичок
 
Сообщения: 38
Зарегистрирован: 13.01.2006 (Пт) 10:42
Откуда: Петербург

Сообщение Sorch » 11.01.2007 (Чт) 14:31

For Each lsi In lst.ListSubItems
s=s & "<td>" & lsi.Text & "&nbsp;</td>"
Next

Странно, но ListSubItems - нет у моего ListView такого метода!?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2007 (Чт) 14:42

как так нет?
это коллекция сабайтемов у конкретного листайтема

ошибочка:
&nbsp; 8)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2007 (Чт) 14:44

Код: Выделить всё
Option Explicit

Private Sub Command1_Click()
Dim f As Integer
Dim s As String
Dim lst As ListItem
Dim lsi As ListSubItem

f = FreeFile
Open "c:\listviewcontent.htm" For Output As #f
Print #f, "<html><head><title>"
Print #f, "Ñîäåðæèìîå ñïèñêà"
Print #f, "</title></head><body><table align=center border=1 width=90% height=80% cellspacing=0 cellpading=0>"

For Each lst In Me.ListView1.ListItems

    s = "<tr><td>" & lst.Text & "&nbsp;</td>"

    For Each lsi In lst.ListSubItems
         s = s & "<td>" & lsi.Text & "&nbsp;</td>"
    Next

    Print #f, s & "</tr>"
 
Next


Print #f, "</table></body></html>"
Close #f

Shell "explorer c:\listviewcontent.htm", vbNormalFocus
End Sub

Private Sub Form_Load()
Dim i As Integer
Dim j As Integer
Dim lst As MSComctlLib.ListItem

    With Me.ListView1
   
        For i = 1 To 10
            Set lst = .ListItems.Add(, "k_" & i, "Item " & i)
            For j = 1 To 3
                lst.ListSubItems.Add , lst.Key & "_" & j, "Subitem " & j
            Next j
            Set lst = Nothing
        Next i
       
    End With

End Sub

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 01.02.2007 (Чт) 19:52

Konst_One
а подобным кодом можно ли както печатать без использования ИЕ?
не факт что у юзера будет ИЕ.

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 01.02.2007 (Чт) 21:12

kibernetics писал(а):Konst_One
а подобным кодом можно ли както печатать без использования ИЕ?
не факт что у юзера будет ИЕ.

Осёл есть у всех, кто сидит на винде.
Я знаю верный путь

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.02.2007 (Пт) 15:24

а IE тут и не причем, HTML ведь файл создается.открывай его любым браузером

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 05.02.2007 (Пн) 13:23

в том то и дело, что сзодаётся. а не нужно чтоб создавался, т.к. программа запучкается с СД. и к тому же нет никакого браузера в системе. удалён.

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 06.02.2007 (Вт) 1:40

Вот хороший пример с подробными комментариями
Вложения
LViewPrint_.rar
(10.17 Кб) Скачиваний: 102

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.02.2007 (Вт) 5:21

kibernetics
Гы гы :lol:

Во первых есть папка temp и прочее.

Во вторых, WB удалить нельзя, ибо без него не будет работать спровочная система винды, HTMLHelp который юзают почти все проги и тд.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2007 (Вт) 6:16

Ну не будут, и что?
Вон тут Andrey Fedorov собирал NT4 на дискетке с фаром вместо шелла, так он из неё наверняка mshtml удалил, да и саму справку тоже ;-)
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 06.02.2007 (Вт) 6:42

И... и что? Мне опять пытаются закрыть рот?

[Added: Плохое зрение достало :evil: ]
Последний раз редактировалось Хакер 06.02.2007 (Вт) 9:06, всего редактировалось 1 раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.02.2007 (Вт) 9:05

Нисколько.
Изображение

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 07.02.2007 (Ср) 19:10

Бяка
круто.
а как сделать селект принтер?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 97

    TopList