Страница: 1 |
Страница: 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
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.0ata 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> " & 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
блин
'Сохранение переменной в файл
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
кстати, обрати внимание на
мб. лучше задать постоянную ширину, а то 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
хм.. пример в студию плз