Yo tengo esto por aquí, Paco. Es bastante viejo, pero supongo que te valdrá.


H Debug Decedit('0,') Datedit(*DMY.)
 *---------------------------------------------------------------*
 * Cálculo dígito de control MOD10                               *
 *---------------------------------------------------------------*
D srefe           s              1  0 dim(12)                              Referencia MOD10 D speso           s              1  0 dim(12)                              Pesos D s12             s              1 dim(12)                              Trabajo D sprod           s              2  0 dim(12)                              Producto
D c1              s 1
D c12             s 12
D c13             s 13
C     *entry plist
C                   parm CodM10           13 0
C                   parm rtncde            1
C                   move      CodM10 c13
C                   movel     c13 c12
C                   exsr MOD10
C                   move      c13 CodM10
C                   eval      *inLR = *ON
 
*--------------------------------------------------------------------------------------------*
 *      Cálculo código y dígito de control MOD10                                              *
 
*--------------------------------------------------------------------------------------------*
C     MOD10 begsr
C                   movea '121212121212's12
C                   move      s12 speso
C                   movea     c12 s12
C                   move      s12 srefe
C     srefe         mult      speso sprod
C                   do        12 x                 2 0
C                   z-add     sprod(x) xizq              1 0
C     sprod(x)      div       10 xder              1 0
C                   eval      sprod(x) = xizq+xder
C enddo
C                   xfoot     sprod suma              1 0
C     9             sub       suma DCM10             1 0
C                   add       1 DCM10
C                   move      DCM10 c1
C                   eval      c13 = c12 + c1
C                   move      c13 CodM10
C endsr
 
*--------------------------------------------------------------------------------------------*

Saludos,
Carlos Bartolomé.

El 09/04/2019 a las 8:11, Paco Medina - Exclusivas Camacho escribió:

Buenas, algún ejemplo rpg calculo Modulo 10

Gracias

*Paco Medina
Dept. Informática *
IT Clientes / IT Integration Services**

Exclusivas Camacho, S. Ltd.
EORI ESB29145240
Av. J. Ortega y Gasset, 301 (Pol. San Luis)
29006 Málaga, España (SPAIN)

http://www.e-camacho.com/img/logo_camacho.png
Tel.   +34 952 322 900
Fax   +34 952 314 900
www.e-camacho.com <http://www.e-camacho.com>
*med...@e-camacho.com* <mailto:med...@e-camacho.com>**

*Antes de imprimir piensa si es necesario, piensa en el MEDIO AMBIENTE.*

Este mensaje y sus adjuntos son confidenciales y reservados exclusivamente a su destinatario.

Queda prohibida cualquier revelación, copia o distribución de su contenido. Si ha recibido este

mensaje por error, notifíquelo inmediatamente por esta misma vía y borre el mensaje de su sistema.

Los datos contenidos en las comunicaciones son tratados por EXCLUSIVAS CAMACHO, S. L. con

domicilio en AV. ORTEGA Y GASSET 301, 29006 MÁLAGA (ESPAÑA) con el fin de gestionar las

comunicaciones y ofrecerle la información solicitada. Puede ejercitar sus derechos de acceso,

rectificación, supresión, oposición y limitación, remitiéndonos su solicitud por escrito acompañando

copia de su documento de identidad. Nuestra política de protección de datos podrá encontrarla en

https://www.e-camacho.com.

*Before printing thinks if necessary, think of ENVIRONMENT.*

This message and any attachments are confidential and intended for the use of the addressee

only. Any disclosure, copying, distribution is strictly prohibited. If you have received this email in error,

please notify the sender and delete it immediately. Personal data included in this email belongs to

EXCLUSIVAS CAMACHO, S. L. with registered address in AV. ORTEGA Y GASSET 301, 29006

MÁLAGA (SPAIN) and will be processed with the purpose of managing the communications and

providing information. You are entitled to exercise your rights of access, rectification, erasure, object,

and limitation by addressing such written application to the company, together with a copy of you ID

card. You may consult our privacy and data protection policy in https://www.e-camacho.com.


____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
H Debug Decedit('0,') Datedit(*DMY.)                                            
           
 *---------------------------------------------------------------*              
           
 * Cálculo dígito de control MOD10                               *              
           
 *---------------------------------------------------------------*              
           
D srefe           s              1  0 dim(12)                              
Referencia MOD10
D speso           s              1  0 dim(12)                              
Pesos           
D s12             s              1    dim(12)                              
Trabajo         
D sprod           s              2  0 dim(12)                              
Producto        
D c1              s              1                                              
           
D c12             s             12                                              
           
D c13             s             13                                              
           
C     *entry        plist                                                       
           
C                   parm                    CodM10           13 0               
           
C                   parm                    rtncde            1                 
           
C                   move      CodM10        c13                                 
           
C                   movel     c13           c12                                 
           
C                   exsr      MOD10                                             
           
C                   move      c13           CodM10                              
           
C                   eval      *inLR = *ON                                       
           
 
*--------------------------------------------------------------------------------------------*
 *      Cálculo código y dígito de control MOD10                                
              *
 
*--------------------------------------------------------------------------------------------*
C     MOD10         begsr                                                       
               
C                   movea     '121212121212's12                                 
               
C                   move      s12           speso                               
               
C                   movea     c12           s12                                 
               
C                   move      s12           srefe                               
               
C     srefe         mult      speso         sprod                               
               
C                   do        12            x                 2 0               
               
C                   z-add     sprod(x)      xizq              1 0               
               
C     sprod(x)      div       10            xder              1 0               
               
C                   eval      sprod(x) = xizq+xder                              
               
C                   enddo                                                       
               
C                   xfoot     sprod         suma              1 0               
               
C     9             sub       suma          DCM10             1 0               
               
C                   add       1             DCM10                               
               
C                   move      DCM10         c1                                  
               
C                   eval      c13 = c12 + c1                                    
               
C                   move      c13           CodM10                              
               
C                   endsr                                                       
               
 
*--------------------------------------------------------------------------------------------*
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a