powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Crystal Report XI + VB6
12 сообщений из 12, страница 1 из 1
Crystal Report XI + VB6
    #35807709
Guest_K1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые

Подскажите пожалуйста:
у меня имеется шаблон отчета, созданный в CR XI, который считывает данные из хранимой процедуры на SQL Server

как мне:
1. подтянуть созданный шаблон
2. подменить данные из хп, прописанной в шаблоне на данные созданного на клиенте массива (возможно в качестве источника данных нужно выбирать что-нибудь другое. Пока что данные подтягиваются через OLEDB - Driver SQL Server'a)
3. Какие компонетны и reference'ы должны быть проставлены в проекте, использующим Crystal Reports

заранее спасибо.
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35809985
Guest_K1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В качестве источника данных использую Data Environment, но почему-то не происходит переподключение перед поднятием отчета. Код:

Код: 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.
29.
Private Sub Form_Load()
Dim ConString As String, Base As String, Server As String
Dim trans As String, sql_username As String
Dim cmd As String

Screen.MousePointer = vbHourglass
Base = "DBNAME"
Server = "SERVER_NAME"
trans = "TEST_CR2"
sql_username = "cur_user_name"
cmd = "select * from dbo.table1 where f1 = 'A520'"

ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;"
ConString = ConString + "User ID=" + sql_username + ";Initial Catalog=" + Base + ";"
ConString = ConString + "Data Source=" + Server + ";Application Name=" + trans$


DataEnv.Connection1.ConnectionString = ConString

If DataEnv.Connection1.State = adStateOpen Then
    DataEnv.Connection1.Close
End If

DataEnv.Connection1.Open
DataEnv.Connection1.Execute (cmd)

CRViewer1.ReportSource = Report
CRViewer1.ViewReport

Screen.MousePointer = vbDefault
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35809986
Guest_K1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть кто-нибудь объяснит что не правильно?
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35810506
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
необходимо подсоединить датасорс инвиронмента к датасорсу крислала:
Код: plaintext
Report.Database.SetDataSource DataEnvironment1.Recordsets.Item( 1 ).DataSource
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35813842
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как никто ничего вразумительного не сказал, а возможно кому-нибудь еще понадобится помощь по Crystal Report английский форум по кристалу
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35820711
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В бою не сдается наш гордый моряк!
продолжение изысканий тут
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35841210
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
итак, наконец то я хоть чуть-чуть разобралась в кристалле.
Для того, чтобы подтянуть шаблон и поменять в нем базу необходимо:
1. Положить на форму компонент
crviewer.dll
2. В референсах должны быть указаны ссылки: Crystal ActiveX Report Viewer Library 11.0(по крайней мере у меня кристал 11) и Crystal Reports ActiveXDesign and Runtime Library 11.0
3. На отдельную форму положить компонент CrystalActiveXReportViewer
ну и код (простое нажатие на кнопку):
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
Option Explicit
Dim CrxApp As New CRAXDDRT.Application
Dim crxRep As CRAXDDRT.report

Private Sub Command1_Click()
Dim sErr As String
Dim Server1$, Database1$, user1$, Password1$
Dim ReportFileName As String
Dim ConInf As ConnectionProperties

On Error GoTo ErrorHandler


ReportFileName = "D:\CrystalReports\MyRep1.rpt"

Set crxRep = CrxApp.OpenReport(ReportFileName)


'----------------------------------------------
'Меняем базу

Database1 = MyDB
Server1 = MyServer
user1 = ""
Password1 = ""


Set ConInf = crxRep.Database.Tables( 1 ).ConnectionProperties

ConInf.DeleteAll
ConInf.Add "Provider", "SQLOLEDB"

If crxRep.Database.Tables( 1 ).DllName <> "crdb_ado.dll" Then
    crxRep.Database.Tables( 1 ).DllName = "crdb_ado.dll"
End If


ConInf.Add "Data Source", Server1
ConInf.Add "Initial Catalog", Database1
If (user1 = "") Then
ConInf.Add "Integrated Security", True
End If
'Если надо то назначает пользователя не под windows autofication
'ConInf.Add "User ID", user1
'ConInf.Add "Password", Password1
If Not crxRep.Database.Tables( 1 ).TestConnectivity Then
    MsgBox "No Connection"
End If


crxRep.Database.Verify

crxRep.Database.Tables( 1 ).Location = crxRep.Database.Tables( 1 ).Location
'----------------------------------------------

Screen.MousePointer = vbHourglass
Form2.CrystalActiveXReportViewer1.ReportSource = crxRep
Form2.CrystalActiveXReportViewer1.ViewReport
Screen.MousePointer = vbDefault
Form2.Show

Exit Sub
ErrorHandler:
    sErr = Err.Number & " " & Err.Source & " " & Err.Description
    MsgBox sErr, vbInformation
    Exit Sub
End Sub

пока что я не разобралась как назначать входные параметры...
но все впереди :)
может быть кто-нибудь знает из присутствующих?
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35847401
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно пользуюсь и работает без проблем:

Код: 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.
Dim Report As New CrystalReport9
Public param1, param2

Private Sub Form_Load()

Report.Database.LogOnServer "crdb_oracle.dll", "MYDB", MyBase, "MyLogin", "MyPass" 'подключение dll

Report.ParameterFields.Item( 1 ).ClearCurrentValueAndRange 'сброс параметров
Report.ParameterFields.Item( 2 ).ClearCurrentValueAndRange 'сброс параметров

Report.ParameterFields.Item( 1 ).AddCurrentValue (param1) 'входной параметр
Report.ParameterFields.Item( 2 ).AddCurrentValue (param2) 'входной параметр


Report.EnableParameterPrompting = False

CRViewer91.ReportSource = Report
CRViewer91.ViewReport
CRViewer91.Refresh
End Sub

Private Sub Form_Resize()
CRViewer91.Top =  0 
CRViewer91.Left =  0 
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth

End Sub
Единственный минус этого применения параметры MyBase мне не удается менять, перерыл кучу инфы но так и не нашел, в остальном работает весьма отлично. (Кристал 9,2)
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #35878277
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При наличии нескольких баз данных, возможно менять и наименования баз, здесь искал и ответа не нашел, все рекомендовали менять Crystal (на что уйдет уйма времени и очень большое кол-во перелопачивание отчетов), решение проблемы:
Код: plaintext
1.
2.
3.
Report.Database.Tables( 1 ).ConnectionProperties.Item("Server") = "MyBase"
....
Report.Database.Tables( 1 ).ConnectionProperties.Item("Server") = "MyBase2"
.....
И доступ получаем ко всем базам, которые укажем.....
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Crystal Report XI + VB6
    #37821777
romashka7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kiv-1980,

Этот пример показывает, как менять базу во время выполнения. А как обратиться из VB6 к отчету, который использует данные из нескольких баз?
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #37821933
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А уточнить? Я тоже часто использую запросы к мускулу и ораклу, а обращения менять... тут же нужно тогда менять и процедурки, запросы.. Я конечно тоже задавался данной задачей, но пришел к выводу, что мне проще собрать данные в ВБ из баз и сохранить в нужном формате.
...
Рейтинг: 0 / 0
Crystal Report XI + VB6
    #37822673
romashka7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kiv-1980, уточняю:
Создаю отчет в CR XI, используя данные из MyBase1, MyBase2 (CR XI это позволяет).
А как в программе на VB6 указать ConnectionProperties для этих двух источников данных?
Я тоже сливаю данные в одну базу и пишу:
Report.Database.Tables(1).ConnectionProperties.Item("Server") = "MyBase"
Но, думаю, должно быть что-то получше.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Crystal Report XI + VB6
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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