Jump to content
Fórum Script Brasil
  • 0

Ajuda em Selection Formula


Alcaide

Question

Boa tarde amigos,

Sou novo aqui no fórum e também em programação, e gostaria da ajuda de vocês com o Crystal Reports...

Bom, tenho uma noção bem superficial do Programa, consigo me safar bem heheheh, mas no meu caso, surgir uma dúvida que é a seguinte:

Fiz um programa em Vb.Net, e tenho 2 forms, sendo que um vai mostrar os relatórios disponiveis e o outro vai exibir o .RPT (com o componente do VS), o problema é que neste form onde exibe os relatórios eu tenho os filtros por matrículas (para pegar só uma pessoa) ou uma checkbox Geral, onde o relatório irá emitir todo mundo, ignorando a TxtMatricula certo...

No selection formula eu fiz o seguinte:

FrmVerRel.CrExibe.SelectionFormula = " {EDGCLI.CLIANOREF}=" & FrmPrincipal.CmbAref.Text & "AND {EDGCLI.CLIMAT} = " & TxtMat.Text

Isso é só um teste, que fiz através da linha, pois eu vou buscar esses dados no banco de dados para cada relatório...

Bom, o problema é que quando eu mando exibir a matricula 1001 funciona numa boa, mas quando eu clico para exibir geral, da erro, informando que é necessário algum valor no {EDGCLI.CLIMAT} = " .

Existe alguma forma de trabalhar esse selection para quando esse {EDGCLI.CLIMAT} = " estiver vazio, ele ignorar e emitir geral ???

Aguardo respostas, e obrigado :D

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

climat é um campo texto?? se for tem q ta entre aspa:

FrmVerRel.CrExibe.SelectionFormula = "{EDGCLI.CLIANOREF} = " & FrmPrincipal.CmbAref.Text & " AND {EDGCLI.CLIMAT} = '" & TxtMat.Text & "'"
mas fora isso, se não quiser passar valor quando estiver em branco, é so fazer um if:
Dim s As String

s = "{EDGCLI.CLIANOREF} = " & FrmPrincipal.CmbAref.Text
If TxtMat.Text <> "" Then
    s = s & " AND {EDGCLI.CLIMAT} = '" & TxtMat.Text & "'"
End If

FrmVerRel.CrExibe.SelectionFormula = s[/code]

Link to comment
Share on other sites

  • 0

Complementando a pergunta:

Por exemplo, eu tenho 10 relatorios que utilizam este campos saca ????

So que nestes relatorios nem todos utilizam a tabela EDGCLI ... então por isso penso em fazer alguma maneira direto no Selection Formula, para se não tiver valor, ignora a clausula...

Entende???

Quando eu pego o retorno do Banco (onde esta armazenado o selection), eu vou tratar esse problema.

Link to comment
Share on other sites

  • 0

você pode fazer o If dentro do selection formula.

pode ser IIf tb, q deixa o codigo menor, tente assim:

FrmVerRel.CrExibe.SelectionFormula = "{EDGCLI.CLIANOREF} = " & FrmPrincipal.CmbAref.Text & " And IIf('" & TxtMat.Text & "' = '', True, {EDGCLI.CLIMAT} = '" & TxtMat.Text & "')"

uma explicacao sobre a funcao IIf(): http://office.microsoft.com/pt-br/access-h...A001228853.aspx

Link to comment
Share on other sites

  • 0
você pode fazer o If dentro do selection formula.

pode ser IIf tb, q deixa o codigo menor, tente assim:

FrmVerRel.CrExibe.SelectionFormula = "{EDGCLI.CLIANOREF} = " & FrmPrincipal.CmbAref.Text & " And IIf('" & TxtMat.Text & "' = '', True, {EDGCLI.CLIMAT} = '" & TxtMat.Text & "')"

uma explicacao sobre a funcao IIf(): http://office.microsoft.com/pt-br/access-h...A001228853.aspx

O Kuroi,

Cara muito obrigado por sua ajuda...

Mas pensei bem, e vi que não é necessário fazer isso, nos meus relatórios posso fazer relacionamento e utilizar um IF na própria programação do VB, como voce você explicou primeiramente!

Mutio obrigado novamente,

Grande abraço!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...