A ver, te cuento como va la circuitería interna, espero que te sirva. 1º Necesitas un registro en el RLU que al que se asociará el objeto *PAGSEG:
A R DETAL24CC A*%%*********************************************************************** A*%%RI 00000 A*%%*********************************************************************** A PAGSEG(&LIBSIGSEG/&SIGSEG &POSD &PO- A SA) A* * Campo de biblioteca segmento, 10 tipo A y uso P * Campo de nombre segmento, 8 tipo A y uso P * Campos de desplazamiento, 5,3 tipo S y uso P A LIBSIGSEG 10A P A SIGSEG 8A P A POSD 5S 3P A POSA 5S 3P Como ves se puede parametrizar la biblioteca y el nombre del objeto *PAGSEG, y las coordenadas XY de donde quieres que aparezca. Yo lo tengo en una tabla y me sirve para hacer los cambios de forma dinámica, incluso lo tengo con fecha de caducidad, por si quiero que deje de salir de forma automática a partir de una fecha, si mañana cambia la imagen a mostrar, creo una nueva y cargo su nombre en la tabla..... 2º En el programa, recupero de la tabla (RtvPagSeg es un módulo que devuelve las características del PAGSEG a imprimir ) y cargo los valores que muevo a los campos del RLU..... If RtvPagSeg(P1ABCD:'FI':ZZPGM:'DETAL24CC':' ':Pr_LibSeg:Pr_NomSeg:Pr_PosDown:Pr_PosAcross); LibSigSeg = Pr_LibSeg; SigSeg = %Subst(Pr_NomSeg:1:8); PosD = Pr_PosDown; PosA = Pr_PosAcross; EscribeFirma = *On; Else; EscribeFirma = *Off; EndIf; ..... ... ... Muchas líneas más adelante .... ... ... If EscribeFirma; Write DETAL24CC; EndIf; Tu puedes tener dos segmentos, uno con "ORIGINAL" y otro con "DUPLICADO". Lo único que necesitas es saber bajo que circunstancias se muestra uno u otro y al campo SIGSEG moverle el nombre de un segmento u otro, hacer el Write al registro con los valores y ya está. (como siempre tendrás que jugar con los valores Down/Across hasta que aparezca colocado donde te conviene). Un saludo Date: Wed, 24 Jan 2018 10:45:13 +0100 > From: "alberto" <alberto.marti...@roler.es> > Subject: Re: ** Newsletter ** RE: Duda copias en preformatos > To: "forum.help400" <forum.help400@listas.combios.es> > Message-ID: > < > of4a05b05a.e70eb05a-onc125821f.0034d3df-c125821f.00359...@arcadie.es> > Content-Type: text/plain; charset="utf-8" > > Caray. Esto pinta bien. Evidentemente no lo he hecho nunca. > Interpreto que es un registro vacio, sólo con esta variable? > Descrito en el fichero al principio al final?, le da lo mismo? > Interpreto que el orden de escritura sería algo así: > Overlay=1; > Exsr Sr_albaran; > Overlay=2; > Exsr Sr_albaran; > > Begsr Sr_albaran; > Write reg_overlay > write cabecera > dow not %eof > Write lineas > Enddo > write total > Endsr; > > > > > De: "Javier Mora" <jm...@musgrave.es> > Para: "forum.help400" <forum.help400@listas.combios.es> > Fecha: 24/01/2018 10:34 > Asunto: ** Newsletter ** RE: Duda copias en preformatos > Enviado por: forum.help400-boun...@listas.combios.es > > > > Otra opción consiste en incluir en el PRTF un registro con OVERLAY y > parametrizarlo con una ?variable a programa? y cargar el nombre de un > preformato u otro. > > Javier Mora > > De: forum.help400-boun...@listas.combios.es [ > mailto:forum.help400-boun...@listas.combios.es] En nombre de Fernando > Sánchez Piña > Enviado el: miércoles, 24 de enero de 2018 9:25 > Para: forum.help400 > Asunto: Re: Duda copias en preformatos > > Buenos días, > > De esa manera te genera dos impresos. > Yo suelo hacer un sólo preformato sin el texto y luego se lo añado en el > PRTF como una variable de texto más, de esta forma se genera un único > impreso y quedan identificadas cada hoja con Original y Copia. Además se > puede ver antes de imprimirlo en el mismo spool del as400. > > Un saludo > > Fernando Sánchez Piña > > El 24 de enero de 2018, 9:17, alberto <alberto.marti...@roler.es> > escribió: > Buenos dias. > Para los que hacéis preformatos, a ver si me podéis confirmar una cosa. Lo > digo porque igual tiro para el camino más largo, y luego resulta que hay > un atajo: > Tengo que hacer una impresión con original + copia en la que en la primera > página ponga 'original' y en la segunda ponga 'copia' > Yo he pensado en hacer dos preformatos(uno para cada hoja) y dos rutinas > de impresión, evidentemente antes de ejecutar cada una de ellas, hago un > ovrprtf del printerfile y le asigno un preformato. > > -Llenar fichero > ovrprtf file(printerfile) FRONTOVL(&libl/PREFORMato1) > Ejecutar rutina printer > ovrprtf file(printerfile) FRONTOVL(&libl/PREFORMato2) > Ejecutar rutina printer > > Alguien lo ha hecho de un sólo paso? > Gracias! > > >
____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.