VB6 X CRYSTAL REPORTS 2008
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.
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.
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
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
algúem?
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
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!
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!
o filtro eu faço no sql da recordset e a ordenação tbm.
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!
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!
GFASSIO,
Tenta da Seguinte maneira
para via ADO funciona normal assim.
Tenta da Seguinte maneira
Set RS = BD.OpenRecordset([Ô]Select * from Cliente where Cliente.codigo_cli=[ô]00000002[ô][Ô], dbOpenForwardOnly, dbReadOnly)
para via ADO funciona normal assim.
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!
Que chato né...
O que que pode ser?
Abraços mais um vez e obrigado pela ajuda!
GFASSIO
Já usei o CR 8.1 e agora uso do XI.
A situação é a mesma.
Já usei o CR 8.1 e agora uso do XI.
A situação é a mesma.
Tópico encerrado , respostas não são mais permitidas