RECURSIVIDAD
Publicado por WEBNESS (14 intervenciones) el 29/01/2008 01:50:08
hola, alguien sabe como manejar recursividad con coldfusion, tengo este codigo recursivo el cual funciona, pero al hacer el retorno, solo me retorna el valor almecenado en la primera pasada
<cffunction access="public" name="crearEnlaces">
<cfargument name="id" type="numeric" required="true" >
<cfargument name="pasadas" type="numeric" required="false" default=0>
<cfscript>
if(pasadas NEQ 2)
{
qMain = this.mainQuery(#id#);
SESSION.enlaces = SESSION.enlaces&" <b>"&qMain.tipoPresupuesto&"(</b>"&qMain.descripcion&"<b>)</b>";
nombre=this.getContratoTipoPresupuesto(qMain.tipoPadre);
switch(nombre)
{
case "periodo" : break;
case "Centros de costo" : if(qMain.id NEQ qMain.id_centro_costo)
qAgrupacion=this.getIdPresupuestoPadreCC(qMain.id_centro_costo,qMain.id_contrato_tipo_presupuesto-1);
else
qAgrupacion=this.getIdPresupuestoPadreCC(qMain.id_presupuesto_padre,qMain.id_contrato_tipo_presupuesto);
pasadas = pasadas + 1;
this.crearEnlaces(qAgrupacion.id_presupuesto,pasadas);
break;
case "Agrupacion" : qAgrupacion=this.getIdPresupuestoPadreAgrupacion(qMain.id_presupuesto_padre,qMain.id_centro_costo);
pasadas = pasadas + 1;
this.crearEnlaces(qAgrupacion.id_presupuesto,pasadas);
break;
}
}
</cfscript>
</cffunction>
<cffunction access="public" name="crearEnlaces">
<cfargument name="id" type="numeric" required="true" >
<cfargument name="pasadas" type="numeric" required="false" default=0>
<cfscript>
if(pasadas NEQ 2)
{
qMain = this.mainQuery(#id#);
SESSION.enlaces = SESSION.enlaces&" <b>"&qMain.tipoPresupuesto&"(</b>"&qMain.descripcion&"<b>)</b>";
nombre=this.getContratoTipoPresupuesto(qMain.tipoPadre);
switch(nombre)
{
case "periodo" : break;
case "Centros de costo" : if(qMain.id NEQ qMain.id_centro_costo)
qAgrupacion=this.getIdPresupuestoPadreCC(qMain.id_centro_costo,qMain.id_contrato_tipo_presupuesto-1);
else
qAgrupacion=this.getIdPresupuestoPadreCC(qMain.id_presupuesto_padre,qMain.id_contrato_tipo_presupuesto);
pasadas = pasadas + 1;
this.crearEnlaces(qAgrupacion.id_presupuesto,pasadas);
break;
case "Agrupacion" : qAgrupacion=this.getIdPresupuestoPadreAgrupacion(qMain.id_presupuesto_padre,qMain.id_centro_costo);
pasadas = pasadas + 1;
this.crearEnlaces(qAgrupacion.id_presupuesto,pasadas);
break;
}
}
</cfscript>
</cffunction>
Valora esta pregunta


0