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