Usuário com melhor resposta
IIF

Pergunta
-
Respostas
-
Lodetti,
No IIF, vc não atribui o valor assim.
Por exemplo, se vc deseja retornar o resultado dessa expressão precisa apenas definir o valor caso a expressão seja verdadeira ou falsa.
Exemplo:
Adicione um TextBox no ReportView, ou se estiver trabalhando com Table, Matrix, List selecione o item e clique com o botão da direita e selecione a opção Expression
No exemplo abaixo, caso o valor seja verdadeiro (Fields!ListPrice.Value=10), será exibido no campo o valor 100, caso contrário será exibido 200. Ou seja, o resultado será exibido no próprio campo do relatório.
Code Snippet=iif(Fields!ListPrice.Value=10, 100, 200)
Com tipos de dados do tipo String:
Code Snippet=iif(Fields!Color.Value="Preto","Verdadeiro", "Falso")
-
Todas as Respostas
-
Lodetti,
No IIF, vc não atribui o valor assim.
Por exemplo, se vc deseja retornar o resultado dessa expressão precisa apenas definir o valor caso a expressão seja verdadeira ou falsa.
Exemplo:
Adicione um TextBox no ReportView, ou se estiver trabalhando com Table, Matrix, List selecione o item e clique com o botão da direita e selecione a opção Expression
No exemplo abaixo, caso o valor seja verdadeiro (Fields!ListPrice.Value=10), será exibido no campo o valor 100, caso contrário será exibido 200. Ou seja, o resultado será exibido no próprio campo do relatório.
Code Snippet=iif(Fields!ListPrice.Value=10, 100, 200)
Com tipos de dados do tipo String:
Code Snippet=iif(Fields!Color.Value="Preto","Verdadeiro", "Falso")
-
-
Conforme consta no meu post:
se vc deseja retornar o resultado dessa expressão precisa apenas definir o valor caso a expressão seja verdadeira ou falsa. Ou seja, o "valor" pode ser um campo da tabela, variável, etc.)
A dúvida é :
Code Snippet=IIF(expressão=true,campoA 'recebe valor X',campoB 'recebe valor Y')E por isso essa expressão é inválida.
Valeu!
-
Sobre os Post acima, obrigado mas já sabia da parte:
"Se(expressão=true,mostre A,senao mostre B)"
Vou tentar melhorar a pergunta:
IIF(campoA=true,campoB recebe valor do campoC,campoD recebe valor do campoE)
Isso é possivel?? Fazer com que campos diferentes (B,D) ganhem valores estipulados em outros campos (C,E) utilizando o IIF do campo A??
Caso não entenderem minha pergunta eu tento simplificar.
Obrigado! -
Lodetti,
Neste caso será necessário implementar uma função "personalizada" no Report.
Onde implentar:
No menu Report, selecione a opção Reporting Properties, aba Code
Exemplos:
Code SnippetPublic Shared Function ValorCampo(ByVal sngValor As Single) As String
Dim strResultado As String = ""
If sngValor = 10 Then
ValorCampo = "MSDN"ElseIf sngValor = 20 Then
ValorCampo = ".NET 2005"ElseIf sngValor = 20 Then
ValorCampo = ".NET 2008"End If
End Function
Code SnippetPublic Shared Function AddToCount(ByVal Value As Integer) As String
Count = Count + value
End Function
Shared Count As Integer = 0Como usar:
Adicione um TextBox ao relatório, clique no item com o botão da direita e selecione a opção expression.
Code Snippet=Code.ValorCampo(20)