Yo, para clasificar un array con subcampos (o multidimensional) utilizo la
función qsort() de C. Al principio puede ser que sea difícil de entender y
programar, pero una vez la dominas te permite programar criterios de
clasificación muy complejos.
Si te interesa puedo buscar algún ejemplo.
Javier Mora
________________________________
De: [email protected]
[mailto:[email protected]] En nombre de alberto
Enviado el: lunes, 18 de noviembre de 2013 12:47
Para: forum.help400
Asunto: RE: Ordenar matriz con %subarr
Hola
No compila, pero tampoco me serviría, porque en mi array(la mia, no la
del ejemplo) tengo tres campos posibles para ordenar, y los tengo que ir
alternando.
He probado una manera más 'tradicional' como la siguiente:
D DS
D Registro 40 Dim(10) Ascend
D name 25A Overlay(Registro)
D Inz(*hival)
D salary 8S 0 Overlay(Registro:*next)
/free
// Initialize the data structure
name(1) = 'Maria';
salary(1) = 1100;
name(2) = 'Pablo';
salary(2) = 1200;
name(3) = 'Bill';
salary(3) = 1000;
name(4) = 'Alex';
salary(4) = 1300;
SORTA name;
*inlr=*on;
Y en el ejemplo funciona. La probaré en mi programa a ver.
Saludos y gracias!!
De: "Javier Mora" <[email protected]>
Para: "forum.help400" <[email protected]>
Fecha: 18/11/2013 12:21
Asunto: RE: Ordenar matriz con %subarr
________________________________
Prueba
SORTA %subarr(emp : 1 : numEmp);
en V6R1 tampoco se puede especificar un subcampo en %SUBARR, el primer
parámentro es siembre el nombre del array. Es a partir de V7R1, con la
estructura array(*).subcampo, cuando se puede especificar el campo de
clasificación.
Javier Mora
________________________________
De: [email protected]
[mailto:[email protected]
<mailto:[email protected]> ] En nombre de alberto
Enviado el: lunes, 18 de noviembre de 2013 11:43
Para: forum.help400
Asunto: RE: Ordenar matriz con %subarr
Hola. Esto lo estoy probando en el AS de desarrollo con una V6R1. Ahora
lo probaré en el de producción que tiene una V7R1 a ver qué tal.
Por cierto, en el V6R1 tambien he probado sin el * : SORTA
%subarr(emp.name : 1 : numEmp);
y tampoco me compila. Bueno, creo que de hecho he probado unas 20
combinaciones y no me compila en ninguna :(
De: "Javier Mora" <[email protected]>
Para: "forum.help400" <[email protected]>
Fecha: 18/11/2013 11:20
Asunto: RE: Ordenar matriz con %subarr
________________________________
¿Versión de S.O.? Si no me equivoco, %SUBARR está disponible en V6R1 (o
como mucho V5R4). La característica 'array(*).subcampo' está disponible a parti
de V7R1. Yo estoy en V6R1 y tampoco me compila el programa.
Un saludo,
Javier Mora
________________________________
De: [email protected]
[mailto:[email protected]
<mailto:[email protected]> ] En nombre de alberto
Enviado el: lunes, 18 de noviembre de 2013 9:51
Para: forum.help400
Asunto: Ordenar matriz con %subarr
Hola Foro
Nunca había tenido la necesidad de ordenar un array, básicamente porque
siempre he podido crearlo en un orden determinado, pero ahora me he encontrado
con esta necesidad y estoy intentando llevarlo a cabo. con un SORTA. Como mi
array es del tipo DS y no están llenos todos los elementos, he seguido las
indicaciones de IBM y uso el %subarr para indicar qué elementos quiero ordenar.
He seguido todas las indicaciones, y no me compila, me dice que el
primer parámetro de %subarr NO es una matriz. Pero lo bueno es que me he
copiado tal cual el ejemplo de IBM,
D emp DS QUALIFIED DIM(25)
D name 25A VARYING
D salary 9P 2
D numEmp S 10I 0
// Initialize the data structure
emp(1).name = 'Maria';
emp(1).salary = 1100;
emp(2).name = 'Pablo';
emp(2).salary = 1200;
emp(3).name = 'Bill';
emp(3).salary = 1000;
emp(4).name = 'Alex';
emp(4).salary = 1300;
numEmp = 4;
SORTA %subarr(emp(*).name : 1 : numEmp);
http://pic.dhe.ibm.com/infocenter/iadthelp/v8r0/index.jsp?topic=%2Fcom.ibm.etools.iseries.langref.doc%2Fevfrilsh1006.htm
<http://pic.dhe.ibm.com/infocenter/iadthelp/v8r0/index.jsp?topic=%2Fcom.ibm.etools.iseries.langref.doc%2Fevfrilsh1006.htm>
y me da exactamente el mismo error
Alguno de vosotros cade servir el sorta con %subarr??
Me podéis dar un ejemplo que funcione?
Gracias____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd
<http://bit.ly/db68dd> )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd
<http://bit.ly/db68dd> )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.