FUNCTION registraEntrada(dnum_doc, xcuenta_no, xfecha, xventas, xvalor, usuario) DEFINE xidEntrada VARCHAR(2), responde VARCHAR(3), idx, i INT, usuario VARCHAR(50), entradaDiario VARCHAR(25) DEFINE registroEntrada DYNAMIC ARRAY OF RECORD referenciaEntrada VARCHAR(25), fecha DATE, tipo CHAR(1), cuenta_no VARCHAR(8), departamento INT, detalle VARCHAR(100), debito, credito DEC(12, 2) END RECORD, generaE BOOLEAN, xvalor, comision DECIMAL(12, 2), dnum_Doc INT, xcuenta_no VARCHAR(10), xfecha DATE, xventas VARCHAR(2) 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 LET responde = fgl_winquestion( "INFO", "DESEA AFECTAR CONTABILIDAD?", "NO", "YES|NO", "QUESTION", 0) # LET responde = fgl_winquestion("INFO","DESEA VER EL REPORTE DE LA ENTRADA?","NO","YES|NO","QUESTION",0) LET responde = UPSHIFT(responde) LET xidentrada = '02' LET generaE = FALSE SELECT ISNULL(a.v_comision,0) INTO comision FROM tetb00001 a WHERE a.num_doc = dnum_doc CALL GeneraEntradaDiario( usuario, 'DEPOSITOS', XidEntrada, xcuenta_no, xfecha, xvalor, 0, 0, '0', '0', xventas, 0, dnum_doc, comision) RETURNING generaE, registroEntrada IF responde = "YES" THEN BEGIN WORK FOR idx = 1 TO registroEntrada.getLength() IF registroEntrada[idx].cuenta_no IS NOT NULL THEN INSERT INTO cgtb00004( fecha, tipo, ref, cuenta_no, detalle_1, departamento, debito, credito, us_crea, fech_crea, tipo_doc_cxc, num_doc_cxc, sucid, valor_original) VALUES(registroEntrada[idx].fecha, registroEntrada[idx].tipo, entradaDiario, registroEntrada[idx].cuenta_no, registroEntrada[idx].detalle, registroEntrada[idx].departamento, registroEntrada[idx].debito, registroEntrada[idx].credito, usuario, GETDATE(), 'DE', dnum_doc, deposito.sucursal, xvalor) UPDATE tetb00001 SET entrada_no = entradaDiario WHERE num_doc = deposito.num_doc IF STATUS < 0 THEN ROLLBACK WORK CALL msg(1663) RETURN END IF END IF END FOR COMMIT WORK END IF #ACTUALIZA CONTABILIDAD GENERAL LET r_filename = "teprmt001ent.4rp" # LET r_filename = "teentrada.4rp" LET r_output = "SVG" LET preview = 1 -- configure report engine; the functions prefixed fgl that are called here are part of the GRW API IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectPreview(preview) LET handler = fgl_report_commitCurrentSettings() -- commit changes ELSE EXIT PROGRAM END IF --run the report IF handler IS NOT NULL THEN -- report engine was configured ok START REPORT rp_ent TO XML HANDLER HANDLER FOR i = 1 TO registroEntrada.getLength() IF registroEntrada[i].referenciaEntrada IS NOT NULL THEN DISPLAY "datos: debito: ",registroEntrada[i].debito, " credito: ",registroEntrada[i].credito OUTPUT TO REPORT rp_ent(registroEntrada[i].*) END IF END FOR FINISH REPORT rp_ent END IF # DISPLAY ARRAY documentos TO record4.* END FUNCTION REPORT rp_ent(x) DEFINE x RECORD referenciaEntrada VARCHAR(20), fecha DATE, tipo CHAR(1), cuenta_no VARCHAR(8), departamento INT, detalle VARCHAR(100), debito, credito DEC(12, 2) END RECORD, fecha CHAR(40), descripcion CHAR(100), total_registro SMALLINT, t_debito, t_credito DECIMAL(12, 2), descrip_s VARCHAR(100) ORDER BY x.referenciaEntrada, x.cuenta_no FORMAT PAGE HEADER LET fecha = TODAY USING "dd/mm/yyyy", ":", TIME LET total_registro = 0 SELECT a.nombre INTO descrip_s FROM companias a AFTER GROUP OF x.cuenta_no SELECT a.descripcion INTO descripcion FROM cgtb00001 a WHERE a.cuenta_no = x.cuenta_no AND a.status_t IS NULL LET total_registro = total_registro + 1 PRINTX x.cuenta_no, x.departamento, x.debito, x.credito, descripcion, descrip_s, x.fecha, X.referenciaEntrada, fecha, x.detalle ON LAST ROW LET t_credito = SUM(x.credito) LET t_debito = SUM(x.debito) PRINTX t_debito, t_credito, total_registro END REPORT