Return condicional

HMG en Español

Moderator: Rathinagiri

Post Reply
jparada
Posts: 433
Joined: Fri Jan 23, 2009 5:18 pm

Return condicional

Post 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
User avatar
srvet_claudio
Posts: 2224
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: Return condicional

Post 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.
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
jparada
Posts: 433
Joined: Fri Jan 23, 2009 5:18 pm

Re: Return condicional

Post 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
jparada
Posts: 433
Joined: Fri Jan 23, 2009 5:18 pm

Re: Return condicional

Post by jparada »

Claudio,
Hice la prueba y creo que si es lo que necesito, voy a seguir haciendo pruebas.

Gracias.

Saludos,
Javier
vlademiro
Posts: 36
Joined: Mon Jun 01, 2020 4:17 am
DBs Used: DBF

Re: Return condicional

Post 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?
Post Reply