Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com operador "Like" no Crystal Reports (Resolvido)


BStar

Pergunta

Olá Pessoal, Boa tarde!

Sou novo aqui mas quero parabenisar toda a equipe pelo excelente trabalho prestado.

Bom, vamos ao problema:

Pesquisei em tudo que é lugar mas não achei uma forma de fazer "Like" no Crystal Reports.

Já tentei por formula, pelo parameter fields, pelo próprio Vb, com like, *, @, %, & e tudo que vocês possam imaginar mas não consegui fazer funcionar...

Queria algo como: "Selecione o campo "X" da tabela "Y" quando o "X" tiver o começo digitado no "TextBox1.Text" e me traga todos os resultados"

Tipo se eu digtar "Gil", queria que me fosse retornado: Gilberto, Gilsene, Gilmar, Gilson, Gilsara...

Sei que é algo como o kuroi postou num tópico... Tipo: "{NomeDatabela.NomeDoCampo} = '" & %TexteBox1.Text% & "'" mas não consigo usar...

Será que alguém tem algum exemplo detalhado de como fazer isso no Crystal Reports?

Meu código:

CrystalReportViewer1.EnableParameterPrompt = False        
        CrystalReportViewer1.DisplayGroupTree = False
        CrystalReportViewer1.DisplayToolbar = False

        'variavel do tipo decisão
        Dim report As CrystalDecisions.CrystalReports.Engine.ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument

        'aqui carrego o relatorio já montado e com o parametro setado
        report.Load("C:\Documents and Settings\gilberto.MHZ\Desktop\RELATORIO\WebRelatorioDATA\rptdatateste.rpt")

        'variavel do tipo parametro
        Dim param As New CrystalDecisions.Shared.ParameterField

        'aqui ela recebe o paremterFild do relatrio 

        param = report.ParameterFields("nome") 'PARAMETRO CRIADO PELO PARAMETER FIELDS***

        'adiciono um valor para a variavel param (valor do textbox)
        param.CurrentValues.AddValue(TextBox1.Text)

        'depois passamos a variavel para o form
         CrystalReportViewer1.ReportSource = report

Algo me diz que eu não estou sabendo criar a formula :( e nem como usa-la :(²

Podem alterar o código a vontade...

Estou usando o VS2005 e Crystal 8.5

Fico muito grato a todos que ajudarem!

Abraço a todos!

Editado por BStar
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Bom dia amigo,

tente no próprio Crystal Report, no Select Expert a seguinte fórmula:

{NomeDatabela.NomeDoCampo} like {?parametro} & "*"

'Onde, você estará selecionando os registros onde o início do NomeDatabela.NomeDoCampo for parecido com o seu Parametro.

Lembre-se de substituir {?parametro} pelo seu parametro, como {?nome}

Espero ter ajudado,

Att.

Vinícius

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia amigo,

tente no próprio Crystal Report, no Select Expert a seguinte fórmula:

{NomeDatabela.NomeDoCampo} like {?parametro} & "*"

'Onde, você estará selecionando os registros onde o início do NomeDatabela.NomeDoCampo for parecido com o seu Parametro.

Lembre-se de substituir {?parametro} pelo seu parametro, como {?nome}

Espero ter ajudado,

Att.

Vinícius

Bom dia ViniciusMG tdb?

Então, eu tentei a pouco essa formula que você me passou, Estranho é que pelo prompt* do próprio Crystal, ela funciona, mas pelo Vb não :(

Eu joguei essa formula no Parameter Fields. Vou tentar no Formula Fields para ver se tenho algum resultado.

* aqui, funciona perfeitamente essa formula que você me passou

http://img10.imageshack.us/img10/5417/pretadorlike.jpg

Como era pra ser impresso: note que esse relatório ai foi gerado a partir do listbox que tem logo a baixo do textbox

http://img229.imageshack.us/img229/5894/pr...orlikecheio.jpg

Como esta sendo impresso :( sai assim quando eu digito parte do nome no textbox

http://img134.imageshack.us/img134/4916/pr...orlikevazio.jpg

Visão geral da coisa :D

http://img523.imageshack.us/img523/8057/visaogeral.jpg

No mais, tem mais alguma sugestão :D ?

Se precisar de mais informações...

Muito obrigado por enquanto!

Link para o comentário
Compartilhar em outros sites

  • 0

bstar, mas quando você faz pelo visaul basic você ta setando a selection formula como o vinicius falou??

pelo q vi você ta criando o campo parametro pelo visual basic.

acho q o melhor é você dexar o report salvo com o campo parametro já criado, a formula q o vinicius passou já salva e ai na hora de abrir no visual basic, você simplesmente passa o valor do parametro e manda mostrar. tente ai e veja se não funciona, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0
bstar, mas quando você faz pelo visaul basic você ta setando a selection formula como o vinicius falou??

pelo q vi você ta criando o campo parametro pelo visual basic.

acho q o melhor é você dexar o report salvo com o campo parametro já criado, a formula q o vinicius passou já salva e ai na hora de abrir no visual basic, você simplesmente passa o valor do parametro e manda mostrar. tente ai e veja se não funciona, qualquer coisa poste.

Olá Kuroi, boa tarde! Então, eu criei o parâmetro pelo pelo "Parameter Fields" do próprio Crystal.

Só tenho que fazer uma correção em relação ao código que postei acima:

'variavel do tipo decisão
        Dim report2 As CrystalDecisions.CrystalReports.Engine.ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument

        'aqui carrego o relatorio já montado e com o parametro setado
        report2.Load("C:\RELATORIO\WebRelatorios\www\rptPrestadores.rpt")

        'variavel do tipo parametro
        Dim param As New CrystalDecisions.Shared.ParameterField

        'aqui ela recebe o parametro criado pelo paremterFild do Crystal 
        param = report2.ParameterFields("PRESTADOR") 'PARAMETRO CRIADO PELO WIZARD (PARAMETER FIELDS)***

        'adiciono um valor para a variavel param (valor do textbox)
        param.CurrentValues.AddValue(txtPrestador.Text)

        'depois crio uma sessao e armazeno nela o meu relatorio
        Session.Add("rel", report2)

       'transfiro para outra pagina
        Server.Transfer("Rel1Result.aspx")

Eu coloquei a formula no parâmetro que eu criei no próprio Crystal como está na ultima imagem.

Toda vez que eu coloco parte do nome do Prestador, não é retornado nada, mas quando digito o nome completo, ai sim ele me retorna com o resultado :(

Sei que além dessa forma que estou fazendo, tem como eu usar a formula direto no VB. Mas desse jeito eu não sei fazer :(

Será que pode me ajudar?

Muito obrigado a você e ao ViniciusMG.

Forte Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Agora está parcialmente resolvido :D

Antes eu estava visualizando meu relatório na mesma página do filtro, depois que eu transferi me relatório para uma outra página, consegui com a ajuda da dica do amigo ViniciusMG, fazer o meu LIKE funcionar.

Se não for pedir muito, como é que eu faço para trazer todas as ocorrências que tenha a letra "A" em seu nome?

Tipo, dessa forma aqui: {NomeDatabela.NomeDoCampo} like {?parametro} & "*", se for digitado só a letra "A" no meu TextBox eu só trago a ocorrências que contenham a letra "A" no início do nome, tipo:

Andréia

Anderson

André

Ariadine

Como faço para trazer as ocorrências que contenham a letra "A" por todo o nome? Tipo:

Andeson

MAriA

MArcio

RosAngelA

AriAdine

Desde já o meu muito obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
tenta assim:

{NomeDatabela.NomeDoCampo} like "*" & {?parametro} & "*"

Opa Kuroi, agora sim... Ficou perfeito!

Desculpe a enxurrada de perguntas, mas agora o pessoal de onde trabalho decidiram fazer todos os relatórios no Crystal Reports e terei que aprender na marra!

Muito obrigado pela força!

Link para o comentário
Compartilhar em outros sites

  • 0

Tenho um problema parecido,

 

No meu caso quero concatenar o * para completar um array

 

Exemplo: 

O usuário digita 

A e B

 

Portanto ele tem que retornar

Ana

Ana Claudia

...

 

Beatriz

Barbara

etc...

 

Porém, quando eu concateno o *, ele reclama que meu campo é um array...

 

Como eu resolvo essa?

{ITENS_PEDIDOS.COD_ITEM} like {?Código de Produto}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...