{ ------------------------------------------------------------------------------- PROGRAMA : VEPRRP004 OBJETIVO : Reporte Para Entrada de Diario Ventas PROGRAMADOR : Tadeo A. Ferreras F. FECHA REALIZACION : Enero 20, 1993 ------------------------------------------------------------------------------- } GLOBALS "veprgb000.4gl" DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings() r_filename STRING, -- filename of Report Design Document including .4rp extension r_output STRING, -- output format option preview INTEGER, -- TRUE/FALSE, to set preview option pvetb51 RECORD LIKE vetb00051.*, historico CHAR(1) DEFINE selec_v CHAR(1000),direccion1 varCHAR(100) DEFINE p_vetb04 RECORD LIKE vetb00004.* DEFINE ordenado CHAR(1) MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(3) RETURNING impresor CONNECT TO "decomarmol" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL veprrp044() END MAIN FUNCTION veprrp044() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21, PROMPT LINE 14 OPEN FORM vefmrp044 FROM "vefmrp044" DISPLAY FORM vefmrp044 # CALL pantalla() DISPLAY "veprrp044" AT 4,3 DISPLAY "Entrada de Diario Ventas" AT 6,28 LET tipo_papel = 1 CALL msgrp000(tipo_papel) INPUT BY NAME ordenado AFTER FIELD ordenado IF ordenado IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD ordenado END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente,a.nombre FROM tipo_cliente,sec_cliente,nombre IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca los codigos de los productos terminados # Busca las ventas reales del ano actual hasta el mes indicado anteriormente # Columnas explicitas: la tabla real vetb00004 tiene columnas extra al final (id_crm) # que no estan en el .sch; con a.* la direccion caia en id_crm y salia vacia. # LEFT JOIN para que salgan tambien los clientes sin registro en vetb00005. LET selec_v = "SELECT a.tipo_cliente,a.sec_cliente,a.nombre,a.cod_zona,a.cod_provincia,", "a.telefono,a.fax,a.telex,a.patente,a.limite_credito,a.zona_postal,a.num_rnc,", "a.nombre_patente,a.status_t,a.us_crea,a.fech_crea,a.us_mod,a.fech_mod,", "a.puesto_laboral,a.telefono_casa,a.tipo_negocio,a.cond_pago,a.id_ciudad,a.url,", "b.calle FROM vetb00004 a LEFT OUTER JOIN vetb00005 b ", "ON a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente ", "WHERE a.status_t IS NULL AND ", criterio CLIPPED IF ordenado != "A" THEN LET selec_v = selec_v CLIPPED," ORDER BY a.tipo_cliente" ELSE LET selec_v = selec_v CLIPPED," ORDER BY a.tipo_cliente,a.nombre" END IF DISPLAY " " AT 19,14 DISPLAY "<>" AT 19,14 ATTRIBUTE (REVERSE) FOREACH movi_vr INTO p_vetb04.*,direccion1 IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF OUTPUT TO REPORT reporte44(p_vetb04.*,direccion1) END FOREACH FINISH REPORT reporte44 END IF #RUN "type C:\\archivo > %USPRINT%" END FUNCTION REPORT reporte44(x,direccion) DEFINE x RECORD LIKE vetb00004.* DEFINE vendedor,imp,imp1 CHAR (1) DEFINE descrip_venta CHAR(22) DEFINE descrip1 CHAR(30) DEFINE doble_on,doble_off,negrillas_on,negrillas_off,comp_on,comp_off, doce,normal CHAR(2) DEFINE hora CHAR(5),fecha DATE ,direccion VARCHAR(100) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 FORMAT FIRST PAGE HEADER LET fecha =TODAY LET hora = time { LET doble_on = ASCII 14 LET doble_off = ASCII 20 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comp_on = ASCII 15 LET comp_off = ASCII 18 LET doce = ASCII 27, ASCII 77 LET normal = ASCII 27, ASCII 80 LET hora = time LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 PRINT COLUMN 1,ASCII 27, ASCII 80 PRINT COLUMN 1,"veprrp044", COLUMN lj, p_companias.nombre CLIPPED, COLUMN 73, "Pag. ", pageno using "###" PRINT COLUMN 31, "Sistema de Ventas", COLUMN 73, today using "dd/mm/yy" IF ordenado = "A" THEN PRINT COLUMN 24, "Catalogo de Clientes Alfabetico", COLUMN 76, hora ELSE PRINT COLUMN 25, "Catalogo de Clientes Numerico", COLUMN 76, hora END IF PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" PRINT COLUMN 2, "Cliente" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" BEFORE GROUP OF x.tipo_cliente SKIP 2 LINE IF x.tipo_cliente = 12 THEN PRINT "**** CLIENTES LOCALES ****" ELSE PRINT "**** CLIENTES DEL EXTWERIOR ****" END IF ON EVERY ROW PRINT COLUMN 2, x.tipo_cliente USING "&&","-", x.sec_cliente USING "&&&&"," ", x.nombre CLIPPED AFTER GROUP OF x.tipo_cliente SKIP 1 LINE PRINT COLUMN 2, "Total Registro Por Mercado ---> ", GROUP COUNT(*) USING "<<<,<<<,<<<" SKIP 1 LINE ON LAST ROW SKIP 1 LINE PRINT COLUMN 2, "Total Registro Impresos ---> ", COUNT(*) USING "<<<,<<<,<<<"} ON EVERY ROW PRINTX x.*,p_companias.*,fecha,hora,direccion END REPORT