Progress - IMPRESION MASIVA

 
Vista:

IMPRESION MASIVA

Publicado por Octavio (11 intervenciones) el 25/02/2010 01:50:37
AGRADECERIA SU AYUDA PARA CREAR UN PROCEDIMIENTO:

LO QUE ESTOY HACIENDO ES TRATAR DE IMPRIMIR 4 DIFERENTES REGISTROS DE UNA TABLA Y ESTOY HACIENDO LO SIGUIENTE.

EN UNA VENTANA AGREGO LOS REGISTROS QUE VOY A IMPRIMIR TIENEN QUE SER MAXIMO 4, PORQUE CONTIENE CADA UNO: ARTICULO, SKU, DESCRIPCION, CODIGO BARRAS, PRECIO LISTA Y EL DE MAYOREO ( COPIO DE LA TABLA INVENTARIO A UNA TEMPORAL LOS 4 REGISTROS)

QUIERO SABER COMO IMPRIMIR ESOS 4 REGISTROS DE MI TABLA TEMPORAL, EN UNA SOLA HOJA (DIVIDIDA EN 4 PARA CORTARLA POR QUE VAN A SER ETIQUETAS DE PRECIO CUADRADAS).

Y ADEMAS COMO MI DB TIENE 1500 ARTICULOS, PODER CREAR ORDENES DE IMPRESION SEPARADAS, PARA MANDAR VARIAS AL MISMO TIEMPO DESDE UN TIPO SPOOL,

CON ESO PODER SACAR TODAS LAS ETIQUETAS DE LOS 1500ARTICULOS EN HOJAS QUE CONTENGAN 4 ARTICULOS Y MANDARLAS IMPRIMIR POR SEPARADO.

SE LOS AGRADEZCO POR QUE ME URGE...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:IMPRESION MASIVA

Publicado por DparteD (129 intervenciones) el 25/02/2010 12:26:08
Aquí va un Emplo de como imprimir etiquetas de 3 en fondo.
Espero que te sirva.
(Si te dan un pez puedes comer hoy, pero si te enseñan a pescar, comeras todos los días.)

/*************************************************************************************/
/*** Este ejemplo Imprime en papel de etiquetas de TRES ETIQUETASS POR FILA ****/
/*** utiliza prara la impresion el programa sumisnistrado por progress _osprint.p ****/
/*************************************************************************************/
Define var LINEA1 as character format "x(40)" EXTENT 3 no-undo. /******* Apellidos y Nombre *****/
Define var LINEA2 as character format "x(40)" EXTENT 3 no-undo. /******* Dirección *****/
Define var LINEA3 as character format "x(40)" EXTENT 3 no-undo. /******* C.Postal / Población *****/
DEFINE VAR REGISTROS AS INTEGER NO-UNDO.

OUTPUT TO C:\Trabajo\Etiquetasde3.lst paged PAGE-SIZE 83.

FOR EACH ARCHIVO WHERE ARCHIVO.CODIMC = V-MARCA USE-INDEX ARCHIVONOMB.
REGISTROS = REGISTROS + 1.
IF REGISTROS = 1 THEN DO:
LINEA1[1] = STRING(STRING(ARCHIVO.APELL1 + " " + ARCHIVO.APELL2 + ", " + STRING(ARCHIVO.NOMBRE))).
LINEA2[1] = STRING(STRING(ARCHIVO.SIGLCL + " " + ARCHIVO.CALLCL + "," + STRING(ARCHIVO.NUMECL))).
LINEA3[1] = STRING(ARCHIVO.CPOSCL,"99999") + "-" + STRING(ARCHIVO.POBLCL).

END.
IF REGISTROS = 2 THEN DO:
LINEA1[2] = STRING(STRING(ARCHIVO.APELL1 + " " + ARCHIVO.APELL2 + ", " + STRING(ARCHIVO.NOMBRE))).
LINEA2[2] = STRING(STRING(ARCHIVO.SIGLCL + " " + ARCHIVO.CALLCL + "," + STRING(ARCHIVO.NUMECL))).
LINEA3[2] = STRING(ARCHIVO.CPOSCL,"99999") + "-" + STRING(ARCHIVO.POBLCL).
END.
IF REGISTROS = 3 THEN DO:
LINEA1[3] = STRING(STRING(ARCHIVO.APELL1 + " " + ARCHIVO.APELL2 + ", " + STRING(ARCHIVO.NOMBRE))).
LINEA2[3] = STRING(STRING(ARCHIVO.SIGLCL + " " + ARCHIVO.CALLCL + "," + STRING(ARCHIVO.NUMECL))).
LINEA3[3] = STRING(ARCHIVO.CPOSCL,"99999") + "-" + STRING(ARCHIVO.POBLCL).
END.
IF REGISTROS = 3 THEN DO: /*** se han leido 3 registros ***/
FORM
SKIP(4)
LINEA1[1] LINEA1[2] LINEA1[3] SKIP
LINEA2[1] LINEA2[2] LINEA2[3] SKIP
LINEA3[1] LINEA3[2] LINEA3[3] SKIP(3)
WITH FRAME LINEAS DOWN COLUMN 1 WIDTH 210
NO-ATTR-SPACE NO-VALIDATE NO-BOX NO-LABELS USE-TEXT STREAM-IO.

DISPLAY LINEA1[1] LINEA1[2] LINEA1[3]
LINEA2[1] LINEA2[2] LINEA2[3]
LINEA3[1] LINEA3[2] LINEA3[3] WITH FRAME LINEAS.
/* inicializa variables tras imprimir los tres registros leidos ***/
REGISTROS = 0.
LINEA1 = " ".
LINEA2 = " ".
LINEA3 = " ".
END.
END.
/*** por fin de archivo se verifica si hay variables pendientes de impresión
por si el total de los registros no fuese multiplo de 3 en este caso **/
IF LINEA1[1] <> " " THEN DO:
FORM
SKIP(4)
LINEA1[1] LINEA1[2] LINEA1[3] SKIP
LINEA2[1] LINEA2[2] LINEA2[3] SKIP
LINEA3[1] LINEA3[2] LINEA3[3] SKIP(3)
WITH FRAME LINEAF DOWN COLUMN 1 WIDTH 210
NO-ATTR-SPACE NO-VALIDATE NO-BOX NO-LABELS USE-TEXT STREAM-IO.
DISPLAY LINEA1[1] LINEA1[2] LINEA1[3]
LINEA2[1] LINEA2[2] LINEA2[3]
LINEA3[1] LINEA3[2] LINEA3[3] WITH FRAME LINEAF.
END.

OUTPUT CLOSE.
def var resultado as logical no-undo.
run adecomm/_osprint.p (input ?, input 'C:\Trabajo\Etiquetasde3.lst', input 2, input 1, input 83, input 0, output resultado).
os-delete 'osp.lst'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar