Hola otra vez,

 

Además en mi caso lo resolví creando variables según la cantidad de
caracteres, fue lo mas rápido en su momento.

 

c* La longitud de CDG2 sera entre 23 y 42 caracteres              

c                   eval      IN = 60                             

c                   eval      *in(IN + %len(%trim(LOT))) = *on    

c* largo no se usa es para comprobar en Debug                     

c                   move      *blanks       largo             2 0 

c                   eval      largo = %len(%trim(LOT))            

c*                                                                

c   61              eval      CDG01A = CDG2                       

c   62              eval      CDG02A = CDG2                       

c   63              eval      CDG03A = CDG2                       

c   64              eval      CDG04A = CDG2                       

c   65              eval      CDG05A = CDG2                       

c   66              eval      CDG06A = CDG2                       

c   67              eval      CDG07A = CDG2                       

.

.

.

.

 

 

A*%%***********************************************************************

A          R CODE2A                                                        

A*%%***********************************************************************

A     61     CDG01A        23A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     62     CDG02A        24A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     63     CDG03A        25A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     64     CDG04A        26A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     65     CDG05A        27A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     66     CDG06A        28A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

A     67     CDG07A        29A       16BARCODE(CODE128 7   +               

A                                      *NOHRI (*WIDTH .02))                

.

.

.

.

 

Espero que te sirva la idea, a fin de cuentas sabiendo la longitud total lo
mueves a una u otra variable, creo recordar que se 

puede definir el PRTF campos de longitud variable, algo he leido hace años
pero no lo encuentro.

 

Un saludo

 

 


LogoElayFri

Vicente Aliaga
Director Informática

 

961 920 029

[email protected]

 


Silomar Elaborados y Distribución, SL & Silomar Frigoríficos, SL

Autovía A-3 Madrid-Valencia, km 345 • 46930 • QUART DE POBLET • Valencia •
www.silomar.es


P No lo imprima si no es necesario. Protejamos el medio ambiente.

Este mensaje y sus archivos adjuntos pueden contener información
confidencial y están dirigidos exclusivamente a su destinatario. Le
informamos que la legislación vigente prohíbe el uso, divulgación o copia
del contenido del presente mensaje por persona distinta del destinatario sin
autorización previa. Si Ud. no es el destinatario de este mensaje y lo ha
recibido por error le agradeceríamos que nos lo comunicara y que procediera
a destruirlo. This message can contain confidential information and is
directed exclusively to its adressee. We inform you that the legislation
prohibits to use, spreading or copy the content of the present message by
person different from the adressee without previous authorization. If you
are not the adressee of this message or you have received it by error we
would be thankful if you notify us and delete it.

 




 

De: [email protected]
[mailto:[email protected]] En nombre de Jose Bermúdez
Enviado el: jueves, 25 de agosto de 2016 12:05
Para: forum.help400
Asunto: Código de barras CODE128 variable

 

Hola a tod@s 

 

Tengo que imprimir un código de barras code128 (GS1) de longitud variable ya
que uno de los ID es variable.

En el RLU he creado un campo con la máxima longitud que puede tener dicho
campo 42 

 

A la hora de imprimir, me imprime el código de barras bien pero tras la
información que quiero imprimir crea barras en blanco hasta las 42
posiciones y lo que quiero es si hay algún código Hex o algo para indicar
dónde acaba dicho código de barras 

 

 

Ejemplo 

 

(02)08413224160221(10)1111111(37)000123

 

El ID (10) es variable puede tener diferentes longitudes.

 

RPG

D FNC1            C                   COnst(X'8F')      

 

c                   eval
@cod128=%trim('02'+$ean14+'10'+%trim($lotep1)+fnc1+'37'+%trim(%editc($totbl:
'X'))     )       

 

 

 

RLU

A            @COD128       42A  O    12        BARCODE(CODE128 6 *HRZ *NOHRI
X'02')     

 

 

Me genera el código de barras con los blancos hasta los 42 de longitud

“0208413224160221101111111#37000123        “

 

He probado de poner un FNC1 detrás del todo pero me hace lo mismo.

“0208413224160221101111111#37000123#        “

 

 

Saludos,

 

José Bermúdez 

Dep. Informática.

 

Escudo 60x60

 

____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a