Hola Foro !!

Una vez me pasó se podría decir lo mismo, en un array multidimensional lo cual 
arregle dentro de una data structure previa salida a disco (en el armado del 
arreglo lo saque a disco) y después con sentencias incrustadas en SQL lo leía 
en el orden que yo quería y santo remedio, quizá no muy ortodoxo, pero de que 
funcionó, funcionó !!!

Saludos cordiales!!

Subject: RE: Ordenar matriz con %subarr
Date: Mon, 18 Nov 2013 13:12:23 +0100
From: [email protected]
To: [email protected]






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