Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

595
Visualizações
Usar IIF() para verificar una longitud de cadena dividida antes de llamar a GetValue(), sigue siendo un error

En el informe rdlc. Se creó un subinforme de 4 parámetros para recibir del informe principal. Pero en algún momento un informe principal puede enviar menos de cuatro valores. Por ejemplo: Se envió una cadena desde este código VB.Net.

 Dim strProcessCode As String = {"A,B"}

Una cadena incluye solo dos valores. (A y B) Entonces, dividí esta cadena usando una expresión para cada parámetro como estos

 =iif(Split(Parameters!pProcessCode.Value, ",").Length>0, (Split(Parameters!pProcessCode.Value, ",")).GetValue(0) ,nothing) ''For first parameter

El primer y segundo parámetro está bien. Pero tiene un problema cuando preparé un valor para el tercer parámetro. A pesar de que se utiliza de la misma manera.

 =iif(Split(Parameters!pProcessCode.Value, ",").Length>2, (Split(Parameters!pProcessCode.Value, ",")).GetValue(2) ,nothing) ''For third parameter

Muestra este mensaje de error

Error: no se pudo mostrar el subinforme.

¿Cómo arreglarlo?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Sería más fácil de leer y mantener si pudiera dividirlo en If.. ElseIF.. Else o Select .

 Function ReturnResult(byval pProcessCodeValue as string) as string If Instr(0, pProcessCodeValue,",",vbTextCompare) = 0 Then ReturnResult = pProcessCodeValue Exit Function End If dim arr() as string arr = Split(pProcessCodeValue , ",") ReturnResult = arr(arr.Length) End Function

Llámalo:

 =ReturnResult(Parameters!pProcessCode.Value)

Sin embargo, con SSRS es posible que deba usar IIF anidados, por ejemplo:

 =iif(Split(Parameters!pProcessCode.Value, ",").Length = 0, (Split(Parameters!pProcessCode.Value, ",")).GetValue(0) , iif(Split(Parameters!pProcessCode.Value, ",").Length = 1, (Split(Parameters!pProcessCode.Value, ",")).GetValue(1) , iif(Split(Parameters!pProcessCode.Value, ",").Length = 2, (Split(Parameters!pProcessCode.Value, ",")).GetValue(2) , nothing)) )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda