CHAMAR CRYSTAL REPORT

XXXANGELSXXX 05/01/2010 19:52:36
#331109
Boa Noite, pessoal, estou com um caso aqui relativamente simples de ELSE , IF, seguinte, eu quando vou imprimir o rpt, eu faço o seguinte, eu faço a funcao no vb e peço o crystal para imprimir os dados para mim, entao se eu quero imprimir num periodo de tempo eu utilizo a seguinte funçao..

If txtIni.Text <> [Ô][Ô] And txtFim.Text <> [Ô][Ô] Then sCriterio = [Ô]({Dupls001.Vencimento} in #[Ô] & Format(txtIni.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# to #[Ô] & Format(txtFim.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]#)[Ô]

ai o sistema Iprime fino demais da conta, certisssssimo, so que agora eu preciso filtrar alguns outros dados como por exemplo... nesse periodo de data com o fornecedor X exemplo..

If txtIni.Text <> [Ô][Ô] And txtFim.Text <> [Ô][Ô] And txtForn.Text <> [Ô][Ô] Then sCriterio = [Ô]({Dupls001.Vencimento} in #[Ô] & Format(txtIni.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]# to #[Ô] & Format(txtFim.Text, [Ô]mm/dd/yyyy[Ô]) & [Ô]({Dupls001.cp} = [ô][Ô] & txtForn.Text & [Ô]#)[Ô]

so que esta dando pau, quando eu mando imprimir, erro 13 typmastic, sei que o erro esta nas condiçoes da procedure, mas ja testei de tudo enquanto e jeito e nao consigo achar o erro, vao ser 3 filtros na realidade, DATA, FORNECEDOR e tem um ultimo filtro se a parcela paga for maior que zero, ou null, nao precisa imprimir tb nao.. mas vcs me ajudando nessa de cima ai.. eu consigo adaptar para a condiçao da PARCELA. obrigadoooooo
CSAPI 06/01/2010 10:26:51
#331147
Caro colega exprimente fazer assim, eu não entendi bem a sua pergunta mas acho que isso vai te ajudar, coloque no seu formalário um checkbox para que você possa marcar o campo fornecedor ou os campos data inicial e final, ou ate mesmo marcar os dois.
depois crie este campos no formulário de modo que quando a usuário marcar uma destas opções os campos se tornem habilitados, isso você faz través do comando enable.

CrystalReport1.DataFiles(0) = [Ô]c:\banco\banco_memo.mdb[Ô] [ô] sua conexão
CrystalReport1.Connect = [Ô];pwd=sua senha[Ô]
CrystalReport1.ReportFileName = App.Path & [Ô]\Relmemo2.rpt[Ô] [ô] seu relatorio

If Check1 = 1 And Check2 = 0 Then [ô] campos checkbox
If V_Pes_Set = [Ô][Ô] Then
MsgBox [Ô]Campo: Setor não preenchido!!![Ô], vbOKOnly, [Ô]Confirmação[Ô]
conf = [Ô][Ô]
Else
msql = [Ô]{Memorando.id_Setor} = [Ô] & V_id_setor & [Ô] [Ô]
CrystalReport1.Formulas(0) = [Ô]Tituloxx = [ô]SETOR: [Ô] & V_Pes_Set & [Ô][ô] [Ô]
conf = [Ô]X[Ô]
End If
End If

If Check2 = 1 And Check1 = 0 Then [ô] campos checkbox
If V_Pes_Dini = [Ô]__/__/____[Ô] Or V_Pes_Dfin = [Ô]__/__/____[Ô] Then
MsgBox [Ô]Campo: Data não preenchido!!![Ô], vbOKOnly, [Ô]Confirmação[Ô]
Else
msql = [Ô]({memorando.data} >= Date([Ô] & Mid(V_Pes_Dini, 7, 4) & [Ô],[Ô] & Mid(V_Pes_Dini, 4, 2) & [Ô],[Ô] & Mid(V_Pes_Dini, 1, 2) & [Ô])
And {memorando.data} <= Date([Ô] & Mid(V_Pes_Dfin, 7, 4) & [Ô],[Ô] & Mid(V_Pes_Dfin, 4, 2) & [Ô],[Ô] & Mid(V_Pes_Dfin, 1, 2) & [Ô]))[Ô]
End If
End If

If Check1 = 1 And Check2 = 1 Then
If V_cod_fornecedor = [Ô][Ô] Or V_Pes_Dini = [Ô]__/__/____[Ô] Or V_Pes_Dfin = [Ô]__/__/____[Ô] Then
MsgBox [Ô]Campo: Fornecedor ou Data não preenchido!!![Ô], vbOKOnly, [Ô]Confirmação[Ô]
Else
msql = [Ô]({memorando.data} >= Date([Ô] & Mid(V_Pes_Dini, 7, 4) & [Ô],[Ô] & Mid(V_Pes_Dini, 4, 2) & [Ô],[Ô] & Mid(V_Pes_Dini, 1, 2) & [Ô])
And {memorando.data} <= Date([Ô] & Mid(V_Pes_Dfin, 7, 4) & [Ô],[Ô] & Mid(V_Pes_Dfin, 4, 2) & [Ô],[Ô] & Mid(V_Pes_Dfin, 1, 2) & [Ô])) and
{Memorando.id_Setor} = [Ô] & V_id_setor & [Ô] [Ô]
End If
End If



CrystalReport1.SelectionFormula = msql
CrystalReport1.WindowState = crptMaximized [ô]maximiza a tela do relatório
CrystalReport1.Destination = 0
CrystalReport1.PrintReport

Veja esse codigo que acho que ele vai te ajudar, qualquer duvida me escreva.
Tópico encerrado , respostas não são mais permitidas