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.

Responder a