CRYSTAL REPORTS 9 COM VB6

SIDSIL 06/06/2012 11:35:43
#403650
Bom Dia Amigos

Comecei a usar o Crystal 9,usava o CR7 e ainda estou apanhando nessa nova versao.
Como sabemos, informamos quais tabelas queremos usar e criamos um relacionamento entre elas dentro do crystal.

No CR9, eu posso criar um [Ô]Select[Ô] para determinar quais registros quero que sejam exibidos.

No CR7, eu criava esse relacionamento dentro do Crystal e dentro do VB, atraves de formulas eu filtrava os dados que deveriam ser exibidos, a partir de formulas.

Eu faço a mesma coisa com o CR9, pois ira prevalecer o relacionamento criado entre as tabelas e como eu uso cormulas dentro dele, para filtrar outros campos.


Obrigado


SidSiL
SINKERTEC 06/06/2012 12:36:26
#403655


Qual banco de dados SID?
SIDSIL 06/06/2012 17:00:35
#403692
Acces e SQL Server Express
ADILSOO 08/06/2012 10:02:02
#403774
Pera láá , voce quer o lugar que se enfia a formula dentro do Crystal? Se for isso Crtl+D que adiciona uma formula, se não posta aii oque é.. até mais.
SIDSIL 08/06/2012 14:57:32
#403797
Nao, isso nao.

Eu quero passar valores atraves de formulas dentro do VB6 e tambem filtrar valores atraves de formulas.

Para passar valores atraves de formulas do VB para o Crystal 7,faço isso:

MeuForm.Crystal.Formulas(0) = [Ô]Lit20Gross=[Ô] & Replace(V_DblDifLit20, [Ô],[Ô], [Ô].[Ô])

Para filtrar valores atraves de formulas faço isso:


strFormula = [Ô][Ô]
strFormula = [Ô]{CERTIFICADO.CERTIF_ID}=[Ô] & [Ô]{CERTIFICADO.CERTIF_ID}[Ô]
strFormula = strFormula & [Ô] AND {CERTIFICADO.CERTIF_ID}=[Ô] & CDbl([Ô]0[Ô] & LblCert_ID.Caption)

MeuForm.Crysta.ReplaceSelectionFormula strFormula


Eu quero fazer o mesmo no VB6 com Crystal 9


Para filtrar valores pelas formulas fiz isso :

strFormula = [Ô][Ô]
strFormula = [Ô]{CERTIFICADO.CERTIF_ID}=[Ô] & [Ô]{CERTIFICADO.CERTIF_ID}[Ô]
strFormula = strFormula & [Ô] AND {CERTIFICADO.CERTIF_ID}=[Ô] & CDbl([Ô]0[Ô] & LblCert_ID.Caption)

Report.RecordSelectionFormula = strFormula


Fiz isso para passar valores para a formula e nao funcionou.

Report.FormulaFields.GetItemByName([Ô]JAN[Ô]).Text =[Ô]123[Ô]


Pelo que eu pesquisei, me parece que os comandos estao corretos, talvez a sintaxe esteja incorreta.


Muito Obrigado

SIDSIL
ADILSOO 08/06/2012 16:29:25
#403803
Pra você filtrar registros pode usar o [txt-color=#0000f0]RecordSelectionFormula[/txt-color] vai de boa...
GESIOBRAGA 08/06/2012 21:20:43
#403811
Resposta escolhida
Bom não entendi exatamente o q vc quer, vou colocar o codigo de um botão completo que uso pra ver se te ajuda ai.....

Dim Aplicacao As New CRAXDRT.Application
Dim Report As New CRAXDRT.Report

[ô]Se for um subReport ao invés de OPenReport vc Coloca OpenSubReport(nome do subreport)
Set Report = Aplicacao.OpenReport(App.Path & [Ô]pt\ficha.rpt[Ô], 1) [ô]Caminho do Relatório

With Formulario
[ô]conexão com o banco de dados via ADO
Report.Database.Tables.Item(1).ConnectBufferString = [Ô]Provider = Microsoft.Jet.OLEDB.4.0;Data Source = [Ô] & App.Path & [Ô]\dados.mdb[Ô] & [Ô];Jet OLEDB:database Password=senha db[Ô]
Report.Database.Tables.Item(1).DllName = [Ô]crdb_ado.dll[Ô]

[ô]atualiza o banco de dados
Report.DiscardSavedData

[ô]seleciona o aluno pela matricula
Report.RecordSelectionFormula = [Ô]{Alunos.Matricula} = [Ô] & Val(txtMatricula.Text)

[ô]Formula no CR11 @Serie e @Turno
Report.FormulaFields.GetItemByName([Ô]Serie[Ô]).Text = [Ô][ô][Ô] & cboSerie & [Ô][ô][Ô]
Report.FormulaFields.GetItemByName([Ô]Turno[Ô]).Text = [Ô][ô][Ô] & cboTurno & [Ô][ô][Ô]

[ô]puxa o relatório
frmRPT.rpt.ReportSource = Report
frmRPT.rpt.ViewReport
End With

[ô]Fechar Banco de dados
Set Aplicacao = Nothing
Set Report = Nothing

frmRPT.Show 1
SIDSIL 12/06/2012 18:52:04
#404017
Boa Noite

Muito obrigado pela ajuda de todos.
A solucao que voce me deu GESIOBRAGA, me parece ser exatamente o que eu quero, principalmente no que diz respeito as formulas.
Entretanto na minha primeira tentativa nao funcionou.Foi aberta uma nova janela totalmente em branco, como que se estivesse em Loop.

Mas nao estava em Loop, pois eu pude fechar sem problemas essa janela em branco que se abriu.
Tenho que continuar testando.

Eu adiciono o relatorio do Crystal dentro do VB e a principio usei o exemplo que voce me deu sem muitas diferenças e nao entendi porque ainda nao funcionou.Claro que usei os campos da minha tabela.

[ô]seleciona o aluno pela matricula
Report.RecordSelectionFormula = [Ô]{Alunos.Matricula} = [Ô] & Val(txtMatricula.Text)


Alem de nao selecionar nada, abriu uma janela em branco, como eu ja disse.

sds

SIDSIL
ADILSOO 13/06/2012 07:17:40
#404032
Cara, faz o seguinte, cria o seu relatório no Crystal, salva o arquivo .RPT, e depois chama ele através do VB6, valeu.
SIDSIL 13/06/2012 15:13:21
#404073
Boa Tarde

Eu na verdade prefiro fazer assim como voce sugeriu ADILSOO mas eu tenho um problema.
ja procurei e nao encontrei e outros colegas me disseram que nao ha aquele botao para selecionar a impressora no CR9.
Entao e preciso colocar um botao pelo VB e dentro dele colocar o codigo para selecionar a impressora.

Se eu apenas mandar chamar o relatorio do Crystal, como vou poder selecionar a impressora?

Obrigado e um Abraço

SIDSIL
Tópico encerrado , respostas não são mais permitidas