Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пример отчёта в html / 17 сообщений из 17, страница 1 из 1
14.11.2004, 12:06:10
    #32781218
Knd86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Может у ни-ть есть примеры создания отчёта через ADO в виде таблички html.
Очень нужно, плз.
...
Рейтинг: 0 / 0
15.11.2004, 10:05:45
    #32781643
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
что то типа этого.
Код: 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
17.11.2004, 12:33:51
    #32786421
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Написал с использованием 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
17.11.2004, 12:37:27
    #32786437
Пример отчёта в html
1) Dim conn As new ADODB.Connection
2) mStr = mStr & "</TABLE>"
...
Рейтинг: 0 / 0
17.11.2004, 12:41:38
    #32786452
Alexey Kudinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
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
17.11.2004, 12:56:04
    #32786496
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
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
17.11.2004, 13:01:53
    #32786516
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
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
17.11.2004, 13:47:59
    #32786667
Kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Set zChi1 = rs!fld1 тоже самое Set zChi1 = rs
references на Microsoft ActiveX Data Objects 2.x Library стоит.
Пишет что не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру.
...
Рейтинг: 0 / 0
17.11.2004, 14:00:54
    #32786713
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
вместо
Код: 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
17.11.2004, 15:13:41
    #32787037
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
mStr = mStr & "<TR><TD>" & rs!fld1 & "</TD><TD>"
mStr = mStr & rs!fld2 & "</TD></TR>"
Пишет что не удаётся найти объект в семействе, соответствующий требуемому имени или порядковому номеру.
...
Рейтинг: 0 / 0
17.11.2004, 15:33:31
    #32787125
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
ёлы палы. Ну конечно он будет ругаться т.к. в запросе таких полей нет.
Надо вместо rs!fld1 писать rs!num и вместо rs!fld2 rs!Name
В общем вместо fld1, fld2 указывается имя поля из запроса
...
Рейтинг: 0 / 0
17.11.2004, 15:53:05
    #32787199
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Спасибо большое.
Ещё маленкий вопросик по этой теме.
Как мне сделать так чтобы запускался инет эксплорер и это всё дело отображалось там. Пример если можно.
...
Рейтинг: 0 / 0
17.11.2004, 16:31:58
    #32787358
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Код: 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
17.11.2004, 17:20:35
    #32787511
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Какая библиотека отвечает за 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
19.11.2004, 11:52:36
    #32790895
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Help me пожалуйста
...
Рейтинг: 0 / 0
19.11.2004, 12:39:51
    #32791062
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Код: 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
19.11.2004, 13:55:32
    #32791351
kdn86
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пример отчёта в html
Спасибо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Пример отчёта в html / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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