VB6 X CRYSTAL REPORTS 2008

MSMJUDAS 23/02/2010 12:06:16
#335127
GFASSIO

CRYSTAL REPORTS 8.5

Tenta baixar algum desses, o primeiro acho que está completo, os outros estão divididos em partes.

Eu não baixei desse lugar, eu tenho cópia em cds do CR.
GFASSIO 24/02/2010 16:14:31
#335253
MSMJUDAS, muito obrigado pela ajuda.

Uma dúvida, como que chama o componente(ocx) do CR8.5 para eu poder adicionar no VB, o componente CR4.6 chama [ô]Crystal Report Control 4.6[ô] que no caso referencia a crystl32.ocx.

Um problema que eu não esperava ter é que o 8.5 no abre .rpt do 4.6 ???

Abraços
GFASSIO 25/02/2010 15:48:29
#335359
algúem?
RFTD 25/02/2010 16:33:08
#335363
Eu achei este metodo na internet funciona perfeitamente com o CR 11 R2 q eu uso, é so colocar o componente CRViewer na form.

  Public Sub CarregarRelatorio()
On Error GoTo tratar

[ô]Unload Me
Dim rs As New ADODB.Recordset [ô]HOLDS ALL DATA RETURNED FROM QUERY

rs.CursorLocation = adUseClient
rs.Open sql, MyDatabase, adOpenForwardOnly, adLockReadOnly, adCmdText
Set rs.ActiveConnection = Nothing

If rs.EOF Then
MsgBox [Ô]Não há registros![Ô], vbInformation
Unload Me
Exit Sub
End If

Dim crystal As New CRAXDRT.Application [ô]LOADS REPORT FROM FILE

Dim report As CRAXDRT.report [ô]HOLDS REPORT
Set report = crystal.OpenReport(App.Path & [Ô]pt\[Ô] & relatorio) [ô]OPEN OUR REPORT

report.DiscardSavedData [ô]CLEARS REPORT SO WE WORK FROM RECORDSET
report.Database.SetDataSource rs [ô]LINK REPORT TO RECORDSET

[ô]formulas do relatorio
Dim i As Integer
Dim nomeFormula As String
For i = 1 To report.FormulaFields.Count
nomeFormula = UCase(report.FormulaFields.item(i).Name)

If nomeFormula = [Ô]{@TITULO}[Ô] Then
report.FormulaFields.item(i).Text = [Ô][ô][Ô] + titulo + [Ô][ô][Ô]
ElseIf nomeFormula = [Ô]{@FMLNOME1}[Ô] Then
report.FormulaFields.item(i).Text = FMLNOME1
ElseIf nomeFormula = [Ô]{@FMLNOME2}[Ô] Then
report.FormulaFields.item(i).Text = FMLNOME2
ElseIf nomeFormula = [Ô]{@FMLNOME3}[Ô] Then
report.FormulaFields.item(i).Text = FMLNOME3
ElseIf nomeFormula = [Ô]{@PULAPAGINA1}[Ô] Then
report.FormulaFields.item(i).Text = pulaPagina1
ElseIf nomeFormula = [Ô]{@PULAPAGINA2}[Ô] Then
report.FormulaFields.item(i).Text = pulaPagina2
ElseIf nomeFormula = [Ô]{@PULAPAGINA3}[Ô] Then
report.FormulaFields.item(i).Text = pulaPagina3
ElseIf nomeFormula = [Ô]{@TIPOANASINT}[Ô] Then
report.FormulaFields.item(i).Text = TIPOANASINT
ElseIf nomeFormula = [Ô]{@SUBTITULO1}[Ô] Then
report.FormulaFields.item(i).Text = SUBTITULO1
ElseIf nomeFormula = [Ô]{@SUBTITULO2}[Ô] Then
report.FormulaFields.item(i).Text = SUBTITULO2
ElseIf nomeFormula = [Ô]{@SUBTITULO3}[Ô] Then
report.FormulaFields.item(i).Text = SUBTITULO3
ElseIf nomeFormula = [Ô]{@TOTALGERAL}[Ô] Then
report.FormulaFields.item(i).Text = TOTALGERAL
ElseIf nomeFormula = [Ô]{@PARAMETROS}[Ô] Then
report.FormulaFields.item(i).Text = PARAMETROS
ElseIf nomeFormula = [Ô]{@RODAPE}[Ô] Then
report.FormulaFields.item(i).Text = RODAPE
ElseIf nomeFormula = [Ô]{@GENETICO1}[Ô] Then
report.FormulaFields.item(i).Text = genetico1
ElseIf nomeFormula = [Ô]{@F1}[Ô] Then
report.FormulaFields.item(i).Text = F1
ElseIf nomeFormula = [Ô]{@F2}[Ô] Then
report.FormulaFields.item(i).Text = F2
ElseIf nomeFormula = [Ô]{@F3}[Ô] Then
report.FormulaFields.item(i).Text = F3
ElseIf nomeFormula = [Ô]{@F4}[Ô] Then
report.FormulaFields.item(i).Text = F4
ElseIf nomeFormula = [Ô]{@F5}[Ô] Then
report.FormulaFields.item(i).Text = F5
[ô]LIVRES
ElseIf nomeFormula = [Ô]{@FLIVRE1}[Ô] Then
report.FormulaFields.item(i).Text = flivre1
ElseIf nomeFormula = [Ô]{@FLIVRE2}[Ô] Then
report.FormulaFields.item(i).Text = flivre2
ElseIf nomeFormula = [Ô]{@FLIVRE3}[Ô] Then
report.FormulaFields.item(i).Text = flivre3
ElseIf nomeFormula = [Ô]{@FLIVRE4}[Ô] Then
report.FormulaFields.item(i).Text = flivre4
ElseIf nomeFormula = [Ô]{@FLIVRE5}[Ô] Then
report.FormulaFields.item(i).Text = flivre5
End If

Next

Me.Show

[ô]CRViewer.DisplayBorder = False [ô]MAKES REPORT FILL ENTIRE FORM
[ô]CRViewer.DisplayTabs = False [ô]THIS REPORT DOES NOT DRILL DOWN, NOT NEEDED
[ô]CRViewer.EnableDrilldown = False [ô]REPORT DOES NOT SUPPORT DRILL-DOWN
[ô]CRViewer.EnableRefreshButton = False [ô]ADO RECORDSET WILL NOT CHANGE, NOT NEEDED
[ô]CRViewer.EnableExportButton = True [ô]EXPORTAR RELATORIO

CRViewer.ReportSource = report [ô]LINK VIEWER TO REPORT
CRViewer.ViewReport [ô]SHOW REPORT

Do While CRViewer.IsBusy [ô]ZOOM METHOD DOES NOT WORK WHILE
DoEvents [ô]REPORT IS LOADING, SO WE MUST PAUSE
Loop [ô]WHILE REPORT LOADS.

CRViewer.Top = 0 [ô]WHEN FORM IS RESIZED
CRViewer.Left = 0
CRViewer.Height = ScaleHeight
CRViewer.Width = ScaleWidth

rs.Close
Set rs = Nothing
Set crystal = Nothing
Set report = Nothing

limparVariaveis
Exit Sub
tratar:
MsgBox Err.Description

End Sub
GFASSIO 25/02/2010 18:45:44
#335387
RFTD, muito obrigado pela ajuda, mas tenho duas dúvidas rsrs

1) Como faço um filtro nele?
ex: no varsão 4.6 eu usava assim: .SelectionFormula = [Ô]{CLIENTE.CODIGO_CLI}=[ô]00000071[ô][Ô]

nesse exemplo que me passou, onde eu coloco essa opção. Eu vi que ele tem a opção GroupSelectionFormula, mas não é a mesma coisa.

2) Como ordeno campo nele?
ex: no varsão 4.6 eu usava assim: .sortFields(0) = [Ô]+{CLIENTE.CODIGO_CLI}[Ô]

Como faço nesse exempo que me passou?

abraços e muito obrigado pela ajuda!


RFTD 26/02/2010 04:20:29
#335425
o filtro eu faço no sql da recordset e a ordenação tbm.


GFASSIO 26/02/2010 15:54:03
#335485
RFTD, eu fiz como falou coloquei o filtro na instrução sql do recordset, mas é como se nem tivesse feito, ele não filtra, é como se nem tivesse feito, mas bm não dá erro.
Dim BD As DAO.Database
Dim RS As DAO.Recordset

Set BD = OpenDatabase(App.Path & [Ô]\BD.mdb[Ô])
Set RS = BD.OpenRecordset([Ô]select * from cliente where cliente.codigo_cli=[ô]00000002[ô][Ô])
If RS.EOF Then
MsgBox [Ô]Não há registros![Ô], vbInformation
Unload Me
Exit Sub
End If

Dim crystal As New CRAXDRT.Application
Dim report As CRAXDRT.report
Set report = crystal.OpenReport(App.Path & [Ô]    este.rpt[Ô])

report.DiscardSavedData
report.Database.SetDataSource RS

Me.Show

CRViewer1.ReportSource = report
CRViewer1.ViewReport

Do While CRViewer1.IsBusy
DoEvents
Loop

RS.Close
Set RS = Nothing
Set crystal = Nothing
Set report = Nothing

Porque será???

Abraços e obrigado pela ajuda!
RFTD 26/02/2010 17:04:32
#335494
GFASSIO,
Tenta da Seguinte maneira

Set RS = BD.OpenRecordset([Ô]Select * from Cliente where Cliente.codigo_cli=[ô]00000002[ô][Ô], dbOpenForwardOnly, dbReadOnly)


para via ADO funciona normal assim.
GFASSIO 02/03/2010 16:02:45
#335802
RFTD, eu fiz como falou coloquei os dois parâmetros, mas continua do mesmo jeito.

Que chato né...

O que que pode ser?

Abraços mais um vez e obrigado pela ajuda!
PEPPERRJ 03/03/2010 13:19:38
#335911
GFASSIO
Já usei o CR 8.1 e agora uso do XI.
A situação é a mesma.
Página 2 de 3 [23 registro(s)]
Tópico encerrado , respostas não são mais permitidas