powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пример отчёта в html
17 сообщений из 17, страница 1 из 1
Пример отчёта в html
    #32781218
Knd86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может у ни-ть есть примеры создания отчёта через ADO в виде таблички html.
Очень нужно, плз.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32781643
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что то типа этого.
Код: plaintext
1.
Private Sub Command2_Click()    Dim mStr As String    Set mQDF = mDB.QueryDefs("z1")    mQDF.Parameters(0).Value = FindID    Set zChi1 = mQDF.OpenRecordset(dbOpenDynaset, dbReadOnly)    mStr = "<TABLE  border=0 cellPadding=0 cellSpacing=0>"    Do While zChi1.EOF = False        mStr = mStr & "<TR><TD>" & zChi1!fld1 & "</TD><TD>"        mStr = mStr & zChi1!fld2 & "</TD></TR>"        zChi1.MoveNext    Loop    mStr.Add "</TABLE>"End Sub
Как отформатирован этот код?

Несколько замечаний.
- Тут DAO, но это не принципиально
- в реальном коде необходимо использовать стили, дабы табличка была красивее
- при больщих таблицах необходимо использовать оптимизированное объединение строк вместо "&"
- ну и если это отчёт, то можно влепить его заголовок и шапку таблицы.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786421
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал с использованием ADO Но выдаёт ошибки
Посмотрите плз чего ему не нравится.

Private Sub Command2_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mStr As String
conn.Open "Provider=MSDAORA;Data Source=grain.terminal;User ID=prod;assword=prod;" на эту строку Object variable or With block variable not set
Set rs = conn.Execute("SELECT w.num, r.dat, r.id, w.dat_b, w.w_b, w.dat_t, w.w_t, o.Name, r.dat_i FROM WEIGHT w, oper o, registr r Where trunc(r.dat) = to_date('" & Form3.DTPicker1 & "', 'dd.mm.yyyy') and w.oper_b = o.num And r.num = w.num ORDER BY w.num")
Set zChi1 = rs
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While zChi1.EOF = False
mStr = mStr & "<TR><TD>" & zChi1!fld1 & "</TD><TD>"
mStr = mStr & zChi1!fld2 & "</TD></TR>"
zChi1.MoveNext
Loop
mStr.Add "</TABLE>" и сдесь Invalid qualifier
End Sub
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786437
1) Dim conn As new ADODB.Connection
2) mStr = mStr & "</TABLE>"
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786452
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdn86Написал с использованием ADO Но выдаёт ошибки
Посмотрите плз чего ему не нравится.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Command2_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mStr As String
set conn = new ADODB.Connection
conn.Open "Provider=MSDAORA;Data Source=grain.terminal;User ID=prod;assword=prod;" на эту строку Object variable or With block variable not set 
Set rs = conn.Execute("SELECT w.num, r.dat, r.id, w.dat_b, w.w_b, w.dat_t, w.w_t, o.Name, r.dat_i FROM WEIGHT w, oper o, registr r Where trunc(r.dat) = to_date('" & Form3.DTPicker1 & "', 'dd.mm.yyyy') and w.oper_b = o.num And r.num = w.num ORDER BY w.num")
Set zChi1 = rs
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While zChi1.EOF = False
mStr = mStr & "<TR><TD>" & zChi1!fld1 & "</TD><TD>"
mStr = mStr & zChi1!fld2 & "</TD></TR>"
zChi1.MoveNext
Loop
'mStr.Add "</TABLE>" и сдесь Invalid qualifier 
mStr = mStr & "</TABLE>"

End Sub
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786496
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Private Sub Command2_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mStr As String
Set conn = New ADODB.Connection
conn.Open "Provider=MSDAORA;Data Source=grain.terminal;User ID=prod;password=prod;"
Set rs = conn.Execute("SELECT w.num, r.dat, r.id, w.dat_b, w.w_b, w.dat_t, w.w_t, o.Name, r.dat_i FROM WEIGHT w, oper o, registr r Where trunc(r.dat) = to_date('" & Form3.DTPicker1 & "', 'dd.mm.yyyy') and w.oper_b = o.num And r.num = w.num ORDER BY w.num")
Set zChi1 = rs
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While zChi1.EOF = False
mStr = mStr & "<TR><TD>" & zChi1!fld1 & "</TD><TD>"
mStr = mStr &zChi1!fld2 & "</TD></TR>"
zChi1.MoveNext
Loop
'mStr.Add "</TABLE>"
mStr = mStr & "</TABLE>"
End Sub
Теперь ругается на эти места. Посмотрите пожалуйста.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786516
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set conn = new ADODB.Connection
а references на Microsoft ActiveX Data Objects 2.x Library стоит?
'mStr.Add "</TABLE>" и сдесь Invalid qualifier
да это я не весь код "причесал"
надо mStr = mStr & "</TABLE>"
zChi1!fld1
надо Set zChi1 = rs убрать, и писать rs!fld1 или rs!fld2
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786667
Kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Set zChi1 = rs!fld1 тоже самое Set zChi1 = rs
references на Microsoft ActiveX Data Objects 2.x Library стоит.
Пишет что не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32786713
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Set zChi1 = rs
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While zChi1.EOF = False
mStr = mStr & "<TR><TD>" & zChi1!fld1 & "</TD><TD>"
mStr = mStr &zChi1!fld2 & "</TD></TR>"
zChi1.MoveNext
Loop
'mStr.Add "</TABLE>"
mStr = mStr & "</TABLE>"
должно быть
Код: plaintext
1.
2.
3.
4.
5.
6.
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While rs.EOF = False
    mStr = mStr & "<TR><TD>" & rs!fld1 & "</TD><TD>"
    mStr = mStr & rs!fld2 & "</TD></TR>"
    rs.MoveNext
Loop
mStr = mStr & "</TABLE>"
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32787037
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mStr = mStr & "<TR><TD>" & rs!fld1 & "</TD><TD>"
mStr = mStr & rs!fld2 & "</TD></TR>"
Пишет что не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32787125
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёлы палы. Ну конечно он будет ругаться т.к. в запросе таких полей нет.
Надо вместо rs!fld1 писать rs!num и вместо rs!fld2 rs!Name
В общем вместо fld1, fld2 указывается имя поля из запроса
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32787199
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое.
Ещё маленкий вопросик по этой теме.
Как мне сделать так чтобы запускался инет эксплорер и это всё дело отображалось там. Пример если можно.
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32787358
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public Sub AdoRecordsetToHTML(rst As ADODB.Recordset)
    Dim fso As New FileSystemObject
    Dim txtFile As TextStream
    Dim strRecordset As String
    Dim ie As Object
    Dim strTempPath As String
    
    strRecordset = rst.GetString(adClipString, , "</TD><TD>", "</TD></TR><TR><TD>", " ")
    
    strTempPath = fso.GetSpecialFolder(TemporaryFolder) & "\Recordset.htm"
    Set txtFile = fso.OpenTextFile(strTempPath, ForWriting, True)
    With txtFile
        .WriteLine "<TABLE BORDER=1><TR><TD>"
        .WriteLine strRecordset
        .WriteLine "<TR><TD>" & left(strRecordset, Len(strRecordset) -  8 )
        .WriteLine "</TABLE>"
        .Close
    End With
    Set txtFile = Nothing
    
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Navigate strTempPath
    ie.Visible = True
    Do While ie.readyState <>  4 
        DoEvents
    Loop
    Set ie = Nothing
    fso.DeleteFile strTempPath
End Sub
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32787511
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая библиотека отвечает за FileSystemObject.
Как мне связать
Private Sub Command2_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mStr As String
Set conn = New ADODB.Connection
conn.Open "Provider=MSDAORA;Data Source=grain.terminal;User ID=prod;password=prod;"
Set rs = conn.Execute("SELECT w.num, r.dat, r.id, w.dat_b, w.w_b, w.dat_t, w.w_t, o.Name, r.dat_i FROM WEIGHT w, oper o, registr r Where trunc(r.dat) = to_date('" & Form3.DTPicker1 & "', 'dd.mm.yyyy') and w.oper_b = o.num And r.num = w.num ORDER BY w.num")
mStr = "<TABLE border=0 cellPadding=0 cellSpacing=0>"
Do While rs.EOF = False
mStr = mStr & "<TR><TD>" & rs!num & "</TD><TD>"
mStr = mStr & rs!dat & "</TD></TR>"
mStr = mStr & rs!id & "</TD></TR>"
mStr = mStr & rs!dat_b & "</TD></TR>"
mStr = mStr & rs!w_b & "</TD></TR>"
mStr = mStr & rs!dat_t & "</TD></TR>"
mStr = mStr & rs!w_t & "</TD></TR>"
mStr = mStr & rs!Name & "</TD></TR>"
mStr = mStr & rs!dat_i & "</TD></TR>"
rs.MoveNext
Loop
mStr = mStr & "</TABLE>"
End Sub

и

Public Sub AdoRecordsetToHTML(rst As ADODB.Recordset)
Dim fso As New FileSystemObject
Dim txtFile As TextStream
Dim strRecordset As String
Dim ie As Object
Dim strTempPath As String

strRecordset = rst.GetString(adClipString, , "</TD><TD>", "</TD></TR><TR><TD>", " ")

strTempPath = fso.GetSpecialFolder(TemporaryFolder) & "\Recordset.htm"
Set txtFile = fso.OpenTextFile(strTempPath, ForWriting, True)
With txtFile
.WriteLine "<TABLE BORDER=1><TR><TD>"
.WriteLine strRecordset
.WriteLine "<TR><TD>" & left(strRecordset, Len(strRecordset) - 8)
.WriteLine "</TABLE>"
.Close
End With
Set txtFile = Nothing

Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate strTempPath
ie.Visible = True
Do While ie.readyState <> 4
DoEvents
Loop
Set ie = Nothing
fso.DeleteFile strTempPath
End Sub

Написать вторую часть в модуле а в Command2 Вызвать
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32790895
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Help me пожалуйста
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32791062
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _    (ByVal hwnd As Long, _     ByVal lpOperation As String, _     ByVal lpFile As String, _     ByVal lpParameters As String, _     ByVal lpDirectory As String, _     ByVal nShowCmd As Long) As LongConst SW_NORMAL = 1Const SW_SHOW = 5\'это ваша процедураPrivate Sub Command2_Click()    \'.....тут старый код....    mStr = mStr & "</TABLE>"    \'.....тут старый код закончился....    \'это новое    Dim sFileName As String    Dim F As Byte    sFileName = App.Path & "/tmp.htm"    If Len(Dir(sFileName)) <> 0 Then        Kill sFileName    End If        F = FreeFile    Open sFileName For Output Shared As #F    Print #F, mStr    Close #F        ShellExecute Me.hwnd, "open", "file:///" & sFileName, "", "", SW_SHOW Or SW_NORMALEnd Sub
Как отформатирован этот код?
...
Рейтинг: 0 / 0
Пример отчёта в html
    #32791351
kdn86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пример отчёта в html
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]