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

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

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

заранее спасибо.
...
Рейтинг: 0 / 0
11.02.2009, 10:58
    #35809985
Guest_K1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
В качестве источника данных использую 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
11.02.2009, 10:59
    #35809986
Guest_K1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
Может быть кто-нибудь объяснит что не правильно?
...
Рейтинг: 0 / 0
11.02.2009, 13:01
    #35810506
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
необходимо подсоединить датасорс инвиронмента к датасорсу крислала:
Код: plaintext
Report.Database.SetDataSource DataEnvironment1.Recordsets.Item( 1 ).DataSource
...
Рейтинг: 0 / 0
12.02.2009, 15:11
    #35813842
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
Так как никто ничего вразумительного не сказал, а возможно кому-нибудь еще понадобится помощь по Crystal Report английский форум по кристалу
...
Рейтинг: 0 / 0
16.02.2009, 19:11
    #35820711
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
В бою не сдается наш гордый моряк!
продолжение изысканий тут
...
Рейтинг: 0 / 0
27.02.2009, 09:45
    #35841210
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
итак, наконец то я хоть чуть-чуть разобралась в кристалле.
Для того, чтобы подтянуть шаблон и поменять в нем базу необходимо:
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
03.03.2009, 08:22
    #35847401
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
Давно пользуюсь и работает без проблем:

Код: 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
19.03.2009, 09:21
    #35878277
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
При наличии нескольких баз данных, возможно менять и наименования баз, здесь искал и ответа не нашел, все рекомендовали менять Crystal (на что уйдет уйма времени и очень большое кол-во перелопачивание отчетов), решение проблемы:
Код: plaintext
1.
2.
3.
Report.Database.Tables( 1 ).ConnectionProperties.Item("Server") = "MyBase"
....
Report.Database.Tables( 1 ).ConnectionProperties.Item("Server") = "MyBase2"
.....
И доступ получаем ко всем базам, которые укажем.....
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
01.06.2012, 15:58
    #37821777
romashka7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Crystal Report XI + VB6
kiv-1980,

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


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