|
Aquí tienes un ejemplo de procesar recursivamente datos estructurados
en árbol. Es una función de un programa de servicio, creado con
ACTGRP(*CALLER). Espero que te sirva. * ************************************************************************** * * Pcom_dependientes. Devuelve en una lista dinámica ordenada los puestos * comerciales dependientes del pasado por parámetro, * y recursivamente los dependientes de éstos, .... * Devuelve true si no hay * error y false en caso contrario. La lista NO es * inicializada antes de cargarla * ************************************************************************** * P pCom_Dependientes... P B export D PI 1N D pcom like(refesal.pcom) value D lista likeds(listaDinamica_rf) * D anterior S like(listaDinamica_rf.numElems) D ultimo S like(listaDinamica_rf.numElems) D i S like(listaDinamica_rf.numelems) D wPcom S like(refesal.pcom) D error S 1N /free if pcom = 0 ; return true ; endif ; if not %open(vnl04501) ; open vnl04501 ; endif ; // // Cargo los dependientes directos setll pcom vnl04501 ; reade pcom vnl04501 ; anterior = lista.numElems ; dow not %eof ; if vn045.ecsitu <> 'BA' ; // // Si no se puede añadir, dejo la lista como estaba y devuelvo false if not listaDin_anyadirUns(lista: vn045.ecpcom) ; lista.numElems = anterior; return false ; endif ; endif ; reade pcom vnl04501 ; enddo ; ultimo = lista.numElems ; // // proceso recursivamente los descendientes de los que he añadido if anterior < ultimo ; for i = anterior + 1 to ultimo ; wpcom = listaDin_recuperarUns(lista: i: error ) ; if error or not pCom_dependientes(wpcom: lista) ; lista.numElems = anterior ; return false ; endif ; endfor ; endif ; return true ; /end-free P pCom_Dependientes... P E Fernando Pérez Cerámica Saloni. Dpto. Auditoría y Organización [EMAIL PROTECTED] escribió: Hoal a todos, Alguien tiene un ejemplo de como crear y llamar a una funcion recursiva?. Un saludo Jesús Mª Arzak Capilla Talleres de Escoriaza,S.A.(TESA) Dpto Proceso de Datos www.tesa.es ADVERTENCIA/WARNING ESTE CORREO ELECTRONICO CONTIENE INFORMACION PRIVADA Y ESTRICTAMENTE CONFIDENCIAL. Si usted no es el destinatario del presente mensaje no esta autorizado a leerlo, retenerlo, copiarlo o difundirlo. Ni esta empresa ni el remitente asume ninguna responsabilidad referente a la posible transmision de virus y es responsabilidad del receptor realizar un escaneo del mensaje y de sus anexos (si los hubiera) . THIS E-MAIL IS PRIVILEGED, CONFIDENTIAL AND CONTAINS PRIVATE INFORMATION. Any reading, retention, distribution or copying of this communication by any person other than its intended recipient is prohibited. Neither this company nor the sender accepts any responsibility for viruses and it is your responsibility to scan the email and attachments (if any) . __________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400 |
begin:vcard fn;quoted-printable:Fernando P=C3=A9rez n;quoted-printable:P=C3=A9rez;Fernando org;quoted-printable:;Auditor=C3=ADa y Organizaci=C3=B3n email;internet:[EMAIL PROTECTED] tel;work:Ext. 627 x-mozilla-html:TRUE version:2.1 end:vcard
__________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400

