Page 1 of 1

Return condicional

Posted: Sat Jul 18, 2020 6:07 pm
by jparada
Hola,
Llevo algunas horas intentando esto y no doy aún con la solución, a ver si me pueden dar una idea.

Tengo unos selectores, como pueden ser año, mes y grupo de agentes, dependiendo de lo que seleccione el usuario se arma una consulta sql.

El código para por ejemplo los grupos de agentes es algo así:

Code: Select all

LOCAL aAgentesRuta   := {  4,  5,  6,  7,  8,  9, 15, 17, 30 }
LOCAL aAgentesMostrador := { 14, 19, 20, 22, 23, 26, 27 }
LOCAL aAgentesEspeciales := { 1, 2, 3, 10, 11, 13, 25 }

FOR EACH cTipoAgente IN aAgentes

    DO CASE
      CASE cTipoAgente[1] == 'Agentes Ruta'
        FOR EACH cAgenteRuta IN aAgentesRuta
          cListaAgenteRuta += "'" + hb_NToS( cAgenteRuta ) + "'" + IIF( cAgenteRuta:__enumIndex() < Len( aAgentesRuta ), ",", "" )
        NEXT
        //RETURN cListaAgenteRuta
      
      CASE cTipoAgente[1] == 'Ventas Mostrador'
        FOR EACH cAgenteMostrador IN aAgentesMostrador
          cListaAgenteMostrador += "'" + hb_NToS( cAgenteMostrador ) + "'" + IIF( cAgenteMostrador:__enumIndex() < Len( aAgentesMostrador ), ",", "" )
        NEXT
        //RETURN cListaAgenteMostrador
      
      CASE cTipoAgente[1] == 'Clientes Especiales'
        FOR EACH cAgenteEspecial IN aAgentesEspeciales
          cListaAgenteEspecial += "'" + hb_NToS( cAgenteEspecial ) + "'" + IIF( cAgenteEspecial:__enumIndex() < Len( aAgentesEspeciales ), ",", "" )
        NEXT
        //RETURN cListaAgenteEspecial
       
    ENDCASE
  
  NEXT

RETURN IIF( !Empty(cListaAgenteRuta), cListaAgenteRuta, IIF( !Empty(cListaAgenteMostrador), cListaAgenteMostrador, ' ') )
Pero ese Return como lo tengo sólo me regresa un grupo y si el usuario seleccionó dos o más grupos cómo lo devuelvo, le he dado vueltas pero no lo consigo.

Alguna idea?.

Saludos,
Javier

Re: Return condicional

Posted: Sat Jul 18, 2020 6:27 pm
by srvet_claudio
Hola Javier,
No entendí muy bien la pregunta, algo así es lo que preguntas ?

RETURN { cListaAgenteRuta, cListaAgenteMostrador, cListaAgenteEspecial }

Cada posición de la matriz devuelta posee un grupo seleccionado. Si algún elemento de la matriz está vacía es porque ese grupo no fue seleccionado.

Re: Return condicional

Posted: Sat Jul 18, 2020 6:59 pm
by jparada
Hola Claudio,
No, porque no debo regresar los tres valores, sólo lo que el usuario seleccionó, sólo son tres grupos, pero son varias combinaciones que el usuario puede elegir, por ejemplo grupo 1 y 2, o 1 y 3, o sólo el 3, etc.

No sé si quedó poco más claro.

Saludos,
Javier

Re: Return condicional

Posted: Sat Jul 18, 2020 7:04 pm
by jparada
Claudio,
Hice la prueba y creo que si es lo que necesito, voy a seguir haciendo pruebas.

Gracias.

Saludos,
Javier

Re: Return condicional

Posted: Tue Jul 21, 2020 6:52 am
by vlademiro
Qual o conteúdo de aAgentes ?

Se for um array simples, porque o índice dele é cTipoAgente[1] ? Não seria só cTipoAgente ?

¿Cuál es el contenido de aAgentes?

Si es una matriz simple, ¿por qué es su índice cTypeAgente [1]? ¿No sería solo cTypeAgente?