Hombre, pues no me iría mal algún ejemplo, porque aparte de este caso que 
he expuesto, tengo previsto trabajar en arrays dinámicas en otro programa, 
y la verdad, que en RPG/ILE no sé cómo hacerlo.
Gracias



De:     "Javier Mora" <[email protected]>
Para:   "forum.help400" <[email protected]>
Fecha:  18/11/2013 13:16
Asunto: RE: Ordenar matriz con %subarr



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]] 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]] 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
 

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 )
Forum.Help400 © Publicaciones Help400, S.L. 
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( 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.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a