ERRO PASSANDO DADO DO VB PARA O CRYSTAL REPORT

PEPPERRJ 13/05/2010 08:38:17
#341638
Ferraz,
Peço desculpas por não ter respondido antes mas entrei numa reunião que terminou muito tarde e não acessei mais o VBManis

Meu programa está desenvolvido em VB6 (SP6) acessando banco de dados Access e os relatórios foram desenvolvidos em Crystal Report XI.

O código usado para chamar o CR a partir do VB é o seguinte:

Dim Report As New CrystalReport15

Private Sub Form_Load()
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = Report
Screen.MousePointer = vbDefault
Report.DiscardSavedData [ô]reset all the data In report
Report.ReportComments = strCabecalho
Report.Text9.SetText (Format(intTotalGeral, [Ô]#,###.00[Ô]))
Report.RecordSelectionFormula = [Ô]{tblDespesa.NumOrcamento} =[Ô] & intNumOrcamento
Report.ParameterFields(1) = [Ô]TotalReceita;[Ô] & intTotalGeral & [Ô];true[Ô]
CRViewer1.ViewReport
End Sub

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

Favor observar:
1) A passagem dos dados no [Ô]Report.RecordSelectionFormula = [Ô]{tblDespesa.NumOrcamento} =[Ô] & intNumOrcamento[Ô] funciona perfeitamente.
2) O problema reside no [Ô]Report.ParameterFields(1) = [Ô]TotalReceita;[Ô] & intTotalReceita & [Ô];true[Ô][Ô] cuja fórmulação segui o sugerido pelo Leandro.
3) O [Ô]intTotalReceita[Ô] é resultado do somatório dos itens [Ô]Receita[Ô], préviamente calculado pelo programa VB.
4) O relatório só é acionado se o usuário, após ver todas as informações na tela (inclusive o Total da Receita), pressionar o botão adequado.

SDS
FERRAZ 13/05/2010 17:26:32
#341707
PEPPERRJ, olha so, vc nao mandou seu .rpt, mais me diz uma coisa, sua duvida eh essa:

Citação:

Prezados,

Meu programa em VB faz um somatório de números que eu chamei de intTotalReceita (campo numérico) cujo valor quero passar para um Parameter Field (?TotalReceita campo numérico).



No VB vc tem:

Campo1 = 4
Campo2 = 5
Campo3 = 6
Campo8 = 8

Variarial [Ô]IntTotalReceita[Ô] = 23

No crystal ParameterFields = TotalReceita + 23 = X ([txt-color=#e80000]Se for isso, de onde vem TotalReceita, quais sao os valores[/txt-color])

Fala ai.
FERRAZ 13/05/2010 22:24:57
#341740
PEPPERRJ, no seu codigo no vb tente assim:

Substitua isso:
Report.ParameterFields(1) = [Ô]TotalReceita;[Ô] & intTotalGeral & [Ô];true[Ô]


Por isso:
Report.ParameterFields(1) = ([Ô]TotalReceita;[Ô] & intTotalGeral & [Ô];true[Ô])


[txt-color=#0000f0]Outra coisa, seu parameterfields so existe uma referencia se sim inicie assim:[/txt-color]

Chame assim:
Report.ParameterFields(0)


E nao assim:
Report.ParameterFields(1)



Veja se o erro continua.

PEPPERRJ 14/05/2010 10:25:18
#341754
Ferraz,

No VB eu tenho uma tabela com [Ô]n[Ô] ocorrências, cujo somatório representa o total da receita.
Esse total é passado para o integer [Ô]intTotalGeral[Ô].
Assim, o comando ficou:
Report.ParameterFields(1) = ([Ô]TotalReceita;[Ô] & intTotalGeral & [Ô];true[Ô])
Não sei de onde vem a palavra [Ô]TotalReceita[Ô] acima, suponho que seja o nome da variável [Ô]?TotalReceita[Ô] para a qual desejo passar o valor calculado.

O Parameter Field [Ô]?TotalReceita[Ô] é o segundo de tres Parameters Fields.
Mesmo assim troquei o (1) pelo (0) e obtive o [Ô]Run-time error 9 - Subscript out of range[Ô]
Troquei o (1) pelo (3) e obtive o [Ô]Run-time error 438 Object doesn[ô]t support this property or method[Ô]

SDS
FERRAZ 14/05/2010 10:52:47
#341758
Ok, repondeu minha pergunta.
Citação:

O Parameter Field [Ô]?TotalReceita[Ô] é o segundo de tres Parameters Fields.
Mesmo assim troquei o (1) pelo (0) e obtive o [Ô]Run-time error 9 - Subscript out of range[Ô]
Troquei o (1) pelo (3) e obtive o [Ô]Run-time error 438 Object doesn[ô]t support this property or method[Ô]



[txt-color=#0000f0]Seu problema entao, esta no Edith Selection Formula = Record, la vc tera que passar a informacao para o Report.ParameterFields(1) e vc tem tres parameterFields a siga a seguecia 0,1,2 e assim vai.[/txt-color]

[txt-color=#e80000]Mesmo assim, mande pra mim seu Report ou escreva exatamente sua formula no crystal (Edith Selection Formula Record e exatamente seu paramentro no crystal.[/txt-color]

PEPPERRJ 14/05/2010 11:20:38
#341760
Ferraz

Segue em anexo o relatório em questão.

A tabela coném os seguintes campos usados no relatório: NumOrcamento (number) ItemDespesa (number) Historico (string) ValorDespesa (number) e Observacoes (string)
Formula Field: Saldo {?TotalReceita} - Sum ({tblDespesa.ValorDespesa})
Parameters:
1) NumOrcamento (nunber)
2) TotalReceita (number)

SDS

Embora tenha compactado o relatório, não fou possível enviá-lo. [Ô]o formato de arquivo não é aceito[Ô]
Se Vc puder me mande seu endereço de e-mail.
FERRAZ 17/05/2010 09:38:12
#341924
Citação:

PEPPERRJ, vc nao conseguiu enviar seu report, dai eu demorei para lhe responder, mais conseguir montar para vc, como se resolve esta questao:



Desta forma esta errado:
Saldo {?TotalReceita} - Sum ({tblDespesa.ValorDespesa})



[txt-color=#0000f0]Siga os passo abaixo:

1- Abra o crystal
2- No menu = Insert = Formula Field = Escreva um nome para sua formula (Ex. Saldo_Detalhado)
3- Clique em Ok
4- Quando abrir o Editor de formulas, basta vc dar duplo clique nos campos somados como o Ex. abaixo
Sum ({Order Details.UnitPrice})-Sum ({Categories.CategoryID}, {Categories.CategoryID})

5- Agora clique em accept ou Ok isso vai depender de sua versao do crystal
6- Depois disso, vc coloca o campo formula ja adptado para o que vc deseja em seu report.
7- Trabalho concluido com sucesso.[/txt-color]


Citação:

Obs.: (1) Eu usei dois campos que fiz uma soma total neles todos com o type (numerico) do BD NWind.MDB do Access
para facilitar a ideia.



Citação:

Obs.:(2) Para funcionar corretamente vc tem que apagar a maneira que faz na formula antetiga, se nao
vai ocorrer um conflito, pois como usaremos uma formula calculada e nao uma selecao, que eh o que fi
zemos anteriormente, usando o Edith Selection Formula_Record.




Qual quer duvida, posta ae, falou.

FERRAZ 17/05/2010 20:56:28
#342015
PEPPERRJ, viu, vou deixar o arquivo aqui, pra voce verificar melhor como fiz, estou usado dois campos somados e com uma formula eu tenho o terceiro campo com o resultado esperado veja.
FERRAZ 18/05/2010 20:03:23
#342131
PEPPERRJ, voce fez os testes colega.
FERRAZ 20/05/2010 16:23:47
#342314
PEPPERRJ, voce resolveu seu problema.
Página 2 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas