Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Печать таблицы DataGird Добавлено: 27.02.06 23:10  

Автор вопроса:  HACKER
Почитав форумы, все сводятся к Data/Active/Crystal Reports... но что-то нехочется мне подключать ещё подобную муть... И так прога большая слишком...

Такие вопросы...
Сколько весят компоненты "Data/Active/Crystal Reports" если всё же подключать...

или как идея скинуть таблицу в html страницу, и распечатать с WebBrowser'a... там как раз удобная настройка печати сразу будет...? или шо попало?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 11.03.06 00:08
ау... хоть идею и реализовал, тема актуальна. Выглядит кривовато конечно да и с супер большими таблицами долговато работает, за то печать красивая и препросмотр страничек прелесть :)

Ответить

Номер ответа: 2
Автор ответа:
 Wowan



Вопросов: 8
Ответов: 13
 Профиль | | #2 Добавлено: 22.03.06 18:07
не поделишься исходником vladimirca@mail.ru

Ответить

Номер ответа: 3
Автор ответа:
 dromer



ICQ: 293-943-186 

Вопросов: 16
Ответов: 28
 Профиль | | #3 Добавлено: 29.04.06 19:23
Кинь код пожалуиста если не трудно. (dromer@mail.ru) у меня проблема чтобы юзверь мог печатать любые таблицы и любые колонки из них по выбору.

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 29.04.06 19:26
Public Function Export2HTML(DBAccess As String, DBTable As String, _
                            HtmlFile As String, Optional Password As String) As Long '+
                          
' Экспортирует с БД в HtmlFile

On Error GoTo e
Dim cn As New ADODB.Connection, cmd As New ADODB.Command, rs As New ADODB.Recordset
Dim myIndex As Integer, MyFieldCount As Integer, Response As Integer
Dim MyRecordCount As Long
Dim MyCol As String, HtmlCode As String
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBAccess$ & ";" & _
 IIf(Trim(Password) <> "", "Jet OLEDB:Database Password=" & Trim$(Password$) & ";", "";)
cn.Open
If cn.state = 0 Then cn.Open
Set cmd.ActiveConnection = cn
cmd.CommandText = "[" & DBTable & "]"
cmd.CommandType = adCmdTable
Set rs = cmd.Execute
MyFieldCount = rs.Fields.Count
rs.MoveFirst
'Формируем заголовок
HtmlCode$ = HtmlCode$ & "<html>" & vbCrLf
HtmlCode$ = HtmlCode$ & "<meta http-equiv=content-type content=" & Chr$(34) & "text/html; charset=windows-1251" & Chr$(34) & ">" & vbCrLf
HtmlCode$ = HtmlCode$ & "<table border=" & Chr$(34) & "1" & Chr$(34) & " style=" & Chr$(34) & "font-size:9pt;" & Chr$(34) & ">" & vbCrLf
HtmlCode$ = HtmlCode$ & "<tr bgcolor=" & Chr$(34) & "#cccccc" & Chr$(34) & ">" & vbCrLf
For myIndex = 0 To MyFieldCount - 1 'Строим заголовк столбцов
    HtmlCode$ = HtmlCode$ & "<td width=" & Chr$(34) & rs(myIndex).DefinedSize & Chr$(34) & ">" & vbCrLf
    HtmlCode$ = HtmlCode$ & "<p>" & rs(myIndex).name & "</p>" & vbCrLf
    HtmlCode$ = HtmlCode$ & "</td>" & vbCrLf
Next myIndex
HtmlCode$ = HtmlCode$ & "</tr>" & vbCrLf
rs.MoveFirst
Do While rs.EOF = False 'Далее строим саму таблицу
HtmlCode$ = HtmlCode$ & "<tr>" & vbCrLf
    For myIndex = 0 To MyFieldCount - 1
         HtmlCode$ = HtmlCode$ & "<td width=" & Chr$(34) & rs(myIndex).DefinedSize & Chr$(34) & ">" & vbCrLf
         HtmlCode$ = HtmlCode$ & "<p> &nbsp;" & rs(myIndex).Value & "</p>" & vbCrLf
         HtmlCode$ = HtmlCode$ & "</td>" & vbCrLf
    Next
    HtmlCode$ = HtmlCode$ & "</tr>" & vbCrLf
    rs.MoveNext
Loop
HtmlCode$ = HtmlCode$ & "</table>" & vbCrLf
HtmlCode$ = HtmlCode$ & "</html>" & vbCrLf
rs.Close
SaveToFile HtmlCode$, HtmlFile$ 'Сохраняем переменную в файл
Export2HTML = 0
Set rs = Nothing
Set cmd = Nothing
Set cn = Nothing
Exit Function
e:
Set rs = Nothing
Set cmd = Nothing
Set cn = Nothing
Export2HTML = Err.Number
DescriptionLastError = Err.Description
Debug.Print Err.Description
End Function

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 29.04.06 19:27
блин
SaveToFile HtmlCode$, HtmlFile$ 'Сохраняем переменную в файл


Public Sub SaveToFile(Data$, PathFile As String)
'Сохранение переменной в файл
On Error Resume Next
Kill PathFile
   n = FreeFile
   Open PathFile For Binary As #n
   Put n, , Data$
   Close #n
End Sub

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 29.04.06 19:31
кстати, обрати внимание на
HtmlCode$ = HtmlCode$ & "<td width=" & Chr$(34) & rs(myIndex).DefinedSize & Chr$(34) & ">" & vbCrLf


мб. лучше задать постоянную ширину, а то DefinedSize не то что нужно возвращает :)

Ответить

Номер ответа: 7
Автор ответа:
 mzx



ICQ: 259560026 

Вопросов: 21
Ответов: 143
 Профиль | | #7 Добавлено: 10.05.06 13:46
по-моему проще в Excel скидывать таблицу, и делай потом с ней, что хошь
я лично так и делаю

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 10.05.06 15:37
ну например данные надо сохранить as html... Ты сначала подключая Excel через OLE точно так же циклом заполняешь каждую ячейку, потом такой же метод print (как и с IE) так в чём разница? В том что ты тратишь время и ресурсы на создание OLE объекта, заполнения книги в экселе... а я просто формирую html строку? :/

Ответить

Номер ответа: 9
Автор ответа:
 mzx



ICQ: 259560026 

Вопросов: 21
Ответов: 143
 Профиль | | #9 Добавлено: 11.05.06 21:10
не понял
тебе нужно таблицу сохранить или что?
при чем тут html вообще?
если обычную таблицу заполненную данными из рекордсета, то Excel однозначно лучше,
кидаешь в него рекордсет целиком и никакого цикла

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 13.05.06 21:17
хм.. пример в студию плз

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам