D     Ser                DS                        Dim(??)
D       Elem         S                2s0        Dim(??)

y para acceder:

        Ser(x).Elem(y)





[EMAIL PROTECTED]
Enviado por: [EMAIL PROTECTED]

22/10/2003 15:41
Por favor, responda a forum.help400

       
        Para:        [EMAIL PROTECTED]
        cc:        
        Asunto:        Re: Duda RPG y Series





A lo mejor el ILE-RPG ha avanzado mucho pero yo creo que solo tiene
matrices de una dimensi�n.

De todas formas si la matriz la vas a cargar en tiempo de compilaci�n o
tiempo de pre-ejecuci�n prueba a jugar la
palabra clave:

PERRCD(constante num�rica)
   Especifica el n�mero de elementos por registro para una matriz o
   tabla de tiempo de compilaci�n o tiempo de pre-ejecuci�n.

O con:
ALT(nombre matriz)
   Indica que la matriz o tabla de tiempo de compilaci�n o de tiempo de
   pre-ejecuci�n est� en formato alternativo.

Ejemplo:

(See attached file: MchkNif01.txt)

Un Saludo,
Jose Luis Aguilera Fern�ndez
Dpto. Inform�tica
E.D. Rueda
E-mail: [EMAIL PROTECTED]
Tlf 914-343-860
___________________________________________________________

"Este� mensaje� y� los� documentos� que,� en� su caso, lleve anexos, pueden
contener� informaci�n� confidencial. Por ello, se informa a quien lo reciba
por error que la informaci�n contenida en el mismo es reservada y su uso no
autorizado� est� prohibido� legalmente , se abstenga� de realizar copias
del
mensaje� o� remitirlo o entregarlo� a otra persona y proceda a borrarlo de
inmediato."
___________________________________________________________



                                                                         
            Jose Berm�dez                                                
            <[EMAIL PROTECTED]                                            
            .es>                                                     Para
            Enviado por:              <[EMAIL PROTECTED]>          
            forum.help400-req                                          cc
            [EMAIL PROTECTED]                                              
                                                                   Asunto
                                      Duda RPG y Series                  
            22/10/03 14:47                                                
                                                                         
                                                                         
               Por favor,                                                
               responda a                                                
            [EMAIL PROTECTED]                                            
                 bios.es                                                  
                                                                         
                                                                         





Como se hace en ILE-RPG una serie de 2 o m�s dimensiones

Quiero guardar datos en un serie de 2 dimensiones pero no se como definirla
y acceder a ella.

D     Ser         S            2s0  Dim(??)


Ser(x,y)
x  de  1 a 20
Y  de 1 a 12




Un Saludo.

Jos� Berm�dez Huerta.

Departamento Inform�tica
Alcoholes Montplet, S. A.

Tel.:  93 313 63 62
Fax.: 93 305 40 45
Email: [EMAIL PROTECTED]


      
*======================================================================================
      *
      * Nombre      : MChkLNif02
      * Descripci�n : Chequea el Nif, CIF y Extranjeros con permiso de residencia
      * Fecha       : 29/05/2000
      * Autor       : Jose Luis Aguilera Fernandez
      *
      * Entradas    : NPaValor -> Nada
      *               APaValor -> El Nif con la letra a la Izquierda
      * Salidas     : SwCo1    -> '1' Si el Nif es incorrecto
      *               APaValor -> El Nif y la Letra que le corresponderia a la 
Izquierda
      *
      
*======================================================================================
      *
    �d TabCif          s              1  0 Dim(10) CtData PERRCD(1) Ascend
    �d TabDi1          s              1    Dim(10) Alt(TabCif)
    �d TabNif          s              2  0 Dim(23) CtData PERRCD(1) Ascend
    �d TabDi2          s              1    Dim(23) Alt(TabNif)
    �d Sle             s              1    Dim(11) CtData PERRCD(11)
     �*
    �d PoDni           Ds
    �d  DniNum                 1      8
    �d  NifCar                 1      1
    �d  NifNum                 2      8
    �d  NifDig                 9      9
     �*
    �d DsPar           Ds
    �d  I4                     1      1  0
    �d  P3                     2      2  0
    �d  I3                     3      3  0
    �d  P2                     4      4  0
    �d  I2                     5      5  0
    �d  P1                     6      6  0
    �d  I1                     7      7  0
      *
     d  AsoDig8        S              1a
     �*****************************************************************
     �* Rutina Principal
     �*****************************************************************
     �*
     C                   ExSr      Sub000
     �*
     C                   ExSr      Sub001
     �*
     C                   Return
      *
     �*****************************************************************
     �*  Sub000 - Rutina de Inicializacion
     �*****************************************************************
     �*
    �C     Sub000        BegSr
     �*
     c     *Entry        Plist
     c                   Parm                    SWCo1             1
     c                   Parm                    NPaValor         13 3
     c                   Parm                    APaValor         40
      *
     c                   Eval      SwCo1 = '0'
      *
     c                   Movel     APaValor      PoDni
     �*
    �C                   EndSr
     �*
     �*****************************************************************
     �*  Sub001: Identifica Tipo de Nif
     �*****************************************************************
     �*
    �C     Sub001        BegSr
     �*
    �C                   If        NifNum <> *All'9'
    �C                   If        NifCar >= '0' And NifCar <= '9'
     C                   ExSr      SubDni                                        Dni
    �C                   Else
    �C                   If        NifCar = 'K'
     C                   ExSr      SubMen                                        
Menores
    �C                   Else
    �C                   If        NifCar = 'X' Or NifCar = 'L'
     C                   ExSr      SubAut                                        Aut. 
Residentes
    �C                   Else
    �C                   If        NifCar >= 'A' And NifCar <= 'Z'
     C                   ExSr      SubCif                                        Cif
    �C                   Else
     C                   ExSr      SubErr                                        Error
    �C                   EndIf
    �C                   EndIf
    �C                   EndIf
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubDni - Verificacion para personas fisicas Dni
     �****************************************************************
     �*
    �C     SubDni        BegSr
     �*
     C                   TestN                   DniNum               30
    �C     *In30         IfEq      '0'
     C                   ExSr      SubErr
    �C                   Else
      * Valido el 8 Digito
     C                   Eval      AsoDig8 = %Subst(DniNum:8:1)
     C                   If        AsoDig8 < '0' Or Asodig8 > '9'
     C                   ExSr      SubErr
    �C                   Else
      *
     C                   Move      DniNum        WNum              8 0
     C                   ExSr      SubDi1
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubCif - Verificacion para sociedades
     �****************************************************************
     �*
    �C     SubCif        BegSr
     �*
     C                   Z-Add     1             X1                2 0
     C     NifCar        LooKup    Sle(X1)                                30
    �C                   If        *In30 = *Off
     C                   ExSr      SubErr
    �C                   Else
     C                   TestN                   NifNum               30
    �C                   If        *In30 = *Off
     C                   ExSr      SubErr
    �C                   Else
     C                   Move      NifNum        WNum
     C                   ExSr      SubDi2
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubAut - Verificacion para personas fisicas,
     �*          Espa�oles no residentes sin Dni y
     �*          Extranjeros con autorizaci�n.
     �****************************************************************
     �*
    �C     SubAut        BegSr
     �*
    �C                   If        NifCar <> 'X' And NifCar <> 'L'
     C                   ExSr      SubErr
    �C                   Else
     C                   TestN                   NifNum               30
    �C                   If        *In30 = *Off
     C                   ExSr      SubErr
    �C                   Else
     C                   Move      NifNum        WNum
     C                   ExSr      SubDi1
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubMen - Verificaci�n para menores
     �****************************************************************
     �*
    �C     SubMen        BegSr
     �*
    �C                   If        NifCar <> 'K'
     C                   ExSr      SubErr
    �C                   Else
     C                   TestN                   NifNum               30
    �C                   If        *In30 = *Off
     C                   ExSr      SubErr
    �C                   Else
     C                   Move      NifNum        WNum
     C                   ExSr      SubDi1
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubDi1 - Calculo Digito del Nif para personas fisicas
     �****************************************************************
     �*
    �C     SubDi1        BegSr
     �*
    �C                   If        WNum < 0
     C                   Eval      WNum = Wnum * -1
    �C                   EndIf
    �C                   If        WNum = *Zeros
     C                   ExSr      SubErr
    �C                   Else
     C     WNum          Div       23            WNum
     C                   Mvr                     Wrest             2 0
     C                   Eval      Wrest = Wrest + 1
     C     Wrest         LooKup    TabNif        TabDi2                   05
    �c                   If        *In05 = *On
     c                   If        TabDi2 <> NifDig
     c                   Movel     TabDi2        NifDig
     c                   Exsr      SubErr
     c                   EndIf
    �C                   Else
     C                   ExSr      SubErr
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubDi2 - Calculo digito del Nif para Sociedades
     �****************************************************************
     �*
    �C     SubDi2        BegSr
     �*
    �C                   If        WNum < 0
     C                   Eval      WNum = Wnum * -1
    �C                   EndIf
    �C                   If        WNum = *Zeros
     C                   ExSr      SubErr
    �C                   Else
     C                   Move      WNum          DsPar
     C                   Z-Add     0             Wtot              2 0
     C     I1            Mult      2             WNum
     C     WNum          Comp      9                                  99
     C   99WNum          Sub       9             WNum
     C                   Add       WNum          Wtot
     C     I2            Mult      2             WNum
     C     WNum          Comp      9                                  99
     C   99WNum          Sub       9             WNum
     C                   Add       WNum          Wtot
     C     I3            Mult      2             WNum
     C     WNum          Comp      9                                  99
     C   99WNum          Sub       9             WNum
     C                   Add       WNum          Wtot
     C     I4            Mult      2             WNum
     C     WNum          Comp      9                                  99
     C   99WNum          Sub       9             WNum
     C                   Add       WNum          Wtot
     C                   Add       P1            Wtot
     C                   Add       P2            Wtot
     C                   Add       P3            Wtot
     C                   Move      Wtot          WDig              1 0
     C     10            Sub       WDig          WDig
     C                   Move      WDig          WDiAlf            1
    �C     WDiAlf        IfNe      NifDig
     C     WDig          LooKup    TabCif        TabDi1                   05
    �C     *In05         IfEq      '1'
     c                   If        TabDi1 <> NifDig
     c                   Movel     TabDi1        NifDig
     c                   Exsr      SubErr
     c                   EndIf
    �C                   Else
     C                   ExSr      SubErr
    �C                   EndIf
    �C                   EndIf
    �C                   EndIf
     �*
    �C                   EndSr
     �*
     �****************************************************************
     �* SubErr - Error en la Validaci�n
     �****************************************************************
     �*
    �C     SubErr        BegSr
     �*
     c                   Move      '1'           SwCo1
     c                   Movel     PoDni         ApaValor
     �*
    �C                   EndSr                                                  SubErr
     �*
**
0J
1A
2B
3C
4D
5E
6F
7G
8H
9I
**
01T
02R
03W
04A
05G
06M
07Y
08F
09P
10D
11X
12B
13N
14J
15Z
16S
17Q
18V
19H
20L
21C
22K
23E
**
ABCDEFGHPQS


Responder a