{ ------------------------------------------------------------------------------- PROGRAMA : CCPRRP018 OBJETIVO : Listar los Estados De Cuentas de los clientes (Partidas pendientes de cobros) PROGRAMADOR : Tadeo A. Ferreras FECHA REALIZACION : Julio 28, 1993 ------------------------------------------------------------------------------- } GLOBALS "ccprgb000.4gl" DEFINE prima DECIMAL(10,2) ### Varible que equivale a la prima de otra moneda DEFINE destino,mov CHAR(1) DEFINE idx_1, idx_2, idx_3 SMALLINT ## Variables usadas para formar arreglos DEFINE fecha_final DATE ## Varible usada para busqueda por fecha de corte DEFINE salir, salir1, salir3, tipo_venta CHAR(1) ## Bandera para control loop DEFINE selec5, selec6 CHAR(1500) ## Variables para almacenar busquedas DEFINE valor_de DECIMAL(12,2) DEFINE dias2 INTEGER, command CHAR(120), tipo CHAR(2) DEFINE dias SMALLINT ## Variable que almacena la diferencia de dias DEFINE p_tel LIKE vetb00004.telefono DEFINE archivo,filename,sysos CHAR(120), cels CHAR(20), cnt SMALLINT, nombre_zona,nombre_p CHAR(30) DEFINE credito, debito, tcredito, tdebito, tbalance, limite, b_balance, no_v,v1_30, v31_45, v46_60, vm_60,p_valor DECIMAL(12,2) DEFINE p_prov LIKE vetb00020.cod_provincia, nom_prov LIKE vetb00020.nombre_provincia DEFINE p_calle,p_descrip,pbarrio CHAR(30) DEFINE p_casa,p_zona,p_numero CHAR(10), balance DECIMAL(12,2), ptelefono LIKE vetb00004.telefono, pzona LIKE vetb00004.cod_zona, pprovincia LIKE vetb00004.cod_provincia #DEFINE no_v LIKE cctb00001.aplica_a DEFINE fecha1,fecha2 DATE, p_nombre CHAR(30), p_limite_credito DECIMAL(10,2) ####### Variables para desplegar resultados por pantalla ante de la impresion DEFINE tot_gen1 RECORD totald DECIMAL(10,2), totalc DECIMAL(10,2), totalg DECIMAL(10,2) END RECORD, ##### Registro que almacena la infoprmacion a imprimir #### m_tipo_doc LIKE cctb00001.tipo_doc DEFINE movtos RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, aplica_a LIKE cctb00001.aplica_a, valor DECIMAL(12,2) END RECORD DEFINE fecha3 DATE FUNCTION ccprrp018() # WHENEVER ERROR CONTINUE OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21 ####### Abriendo y desplegando formulario de captura de datos OPEN FORM ccfmrp018 FROM "ccfmrp018" DISPLAY FORM ccfmrp018 CALL pantalla() DISPLAY "ccprrp018" AT 4,3 ATTRIBUTE(RED) DISPLAY "Estado Cuentas Pendiente De Cobros" AT 6,21 ATTRIBUTE(BLACK) LET tipo_papel = 1 CALL msgrp000(tipo_papel) ##### Creando el criterio de busqueda CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente FROM tipo_cliente, sec_cliente ##### Aceptando la fecha de corte para busqueda de informacion INITIALIZE fecha_final to null INPUT BY NAME prima,fecha_final,dias2 BEFORE FIELD fecha_final LET fecha_final = today AFTER FIELD fecha_final IF fecha_final is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD fecha_final END IF AFTER FIELD dias2 IF dias2 is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD dias2 END IF END INPUT ###### Creando facilidad para cancelar operacion mediante la tecla DELETE ###### o SUPR IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF # Busca los documentos que esten en el rango de fechas especificado LET selec5 = "SELECT a.tipo_cliente,a.sec_cliente,a.aplica_a,sum(a.valor+a.monto_desc) ", "FROM cctb00001 a,vetb00004 c ", "WHERE a.status_t IS NULL AND a.fecha_orig <= ? AND ", " a.num_doc IS NOT NULL AND a.tipo_doc != ('PC') AND ", " a.tipo_cliente = c.tipo_cliente AND ", " a.sec_cliente = c.sec_cliente AND ", #" a.sec_cliente = b.sec_cliente AND a.tipo_doc in ('FE','FT','NC') AND ", criterio CLIPPED," GROUP BY 1,2,3 HAVING SUM(a.valor+a.monto_desc) <> 0 ", "ORDER BY 3 " DISPLAY "<< Buscando los Movimientos del Rango >>" AT 20,14 ATTRIBUTE (REVERSE,BOLD) PREPARE movi FROM selec5 DECLARE movtos_cli CURSOR FOR movi OPEN movtos_cli USING fecha_final LET destino = "E" IF destino = "E" THEN CALL e_ccrp18() RETURN END IF #START REPORT report18 TO "ccrp18" DISPLAY " " AT 19,14 DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>" AT 19,14 ATTRIBUTE (REVERSE) ###### Comienza el loop para enviar informacion al reporte LET salir = "N" WHILE salir != "S" FETCH movtos_cli INTO movtos.* IF status = NOTFOUND THEN LET salir = "S" EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF prima IS NOT NULL THEN LET movtos.valor = movtos.valor * prima END IF SELECT UNIQUE a.tipo_doc INTO m_tipo_doc FROM cctb00001 a WHERE a.status_t IS NULL AND a.num_doc = a.aplica_a AND a.num_doc=movtos.aplica_a AND a.tipo_doc not in ("PG","NC","PC","ND") and a.tipo_cliente=movtos.tipo_cliente AND a.sec_cliente=movtos.sec_cliente GROUP BY 1 IF STATUS < 0 THEN LET m_tipo_doc = "KK" END IF IF m_tipo_doc = "DE" THEN #LET doccli16.fecha_venc = NULL SELECT SUM(a.valor+a.monto_desc)*-1 INTO movtos.valor FROM cctb00001 a WHERE a.fecha_orig<=fecha_final AND a.tipo_cliente=movtos.tipo_cliente AND a.sec_cliente=movtos.sec_cliente AND a.status_t IS NULL AND a.tipo_doc = "DE" AND a.num_doc = movtos.aplica_a END IF # OUTPUT TO REPORT report18(movtos.*) END WHILE # FINISH REPORT report18 RUN "type c:\ccrp18 > %USPRINT%" #CALL fdestino(destino,archivo,imprime) CLEAR SCREEN END FUNCTION ####### Funcion para dar salida a la informacion { REPORT report18(x) DEFINE x RECORD tipo_cliente SMALLINT, sec_cliente SMALLINT, aplica_a LIKE cctb00001.aplica_a, valor DECIMAL(12,2) END RECORD DEFINE hora CHAR(5) DEFINE imp_cli CHAR(1) OUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 2 ORDER BY x.sec_cliente,x.aplica_a #### Proceso para sortear la informacion FORMAT PAGE HEADER LET hora = time PRINT COLUMN 1, letras.comp_on PRINT COLUMN 1, "ccprrp018", COLUMN 31, "R A Y - O - V A C D O M I N I C A N A, S. A.", COLUMN 101, today using "dd/mm/yyyy" PRINT COLUMN 40,"Estado de Cuenta Al ",fecha_final USING "dd/mm/yyyy", COLUMN 106, hora IF x.sec_cliente > 9000 AND prima IS NULL THEN PRINT COLUMN 53, "US$" ELSE PRINT COLUMN 53, "RD$" END IF ##### Si el cliente es local el valor de la prima de la moneda es nulo IF x.sec_cliente < 9000 THEN LET prima = null END IF SKIP 1 LINE BEFORE GROUP OF x.sec_cliente LET idx = 0 LET no_v = 0 LET v1_30 = 0 LET v31_45 = 0 LET v46_60 = 0 LET vm_60 = 0 IF tdebito IS NULL THEN LET tdebito = 0 END IF IF tcredito IS NULL THEN LET tcredito = 0 END IF IF tbalance IS NULL THEN LET tbalance = 0 END IF #### Seleciona los datos generales de identificacion del cliente SELECT UNIQUE b.nombre,b.limite_credito,b.zona_postal,b.num_rnc,c.calle, c.casa_num,c.barrio,b.telefono,b.cod_provincia INTO p_nombre,p_limite_credito,p_zona,p_numero,p_calle,p_casa,pbarrio,p_tel,p_prov FROM vetb00004 b ,vetb00005 c WHERE x.tipo_cliente = b.tipo_cliente and x.sec_cliente = b.sec_cliente and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and b.status_t is null SELECT a.nombre_provincia INTO nom_prov FROM vetb00020 a WHERE a.cod_provincia = p_prov AND a.status_t IS NULL IF balance IS NULL THEN LET balance = 0 END IF LET b_balance = balance IF limite IS NULL THEN LET limite = 0 END IF LET debito = 0 LET credito = 0 IF prima is not null THEN PRINT COLUMN 1,"Prima: ", prima using "###.##" END IF PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-----------" , letras.negrillas_on PRINT COLUMN 1, "Cliente:", COLUMN 10, x.tipo_cliente using "&&","-", x.sec_cliente using "&&&&", COLUMN 18, p_nombre clipped, COLUMN 64, "RNC : ",p_numero PRINT COLUMN 10, p_calle clipped," ",p_casa CLIPPED,pbarrio CLIPPED,", ", nom_prov CLIPPED, COLUMN 90, "Tel : ",p_tel CLIPPED PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------", "-----------" PRINT COLUMN 4, "D O C U M E N T O" PRINT COLUMN 1, "|----------------------|" PRINT COLUMN 3, "Numero", COLUMN 11, "Tipo", COLUMN 17, "Fecha", COLUMN 30, "Vencimiento", COLUMN 63, " Valor ", COLUMN 99, "B A L A N C E" PRINT COLUMN 1, "--------------------------------------------------", "--------------------------------------------------" , "-----------" # END IF ON EVERY ROW display "aplica ",x.aplica_a SELECT UNIQUE a.tipo_doc,MAX(a.fecha_orig),MAX(a.fecha_ven) INTO tipo,fecha2,fecha3 FROM cctb00001 a WHERE a.num_doc = x.aplica_a AND a.status_t IS NULL AND a.aplica_a = a.num_doc GROUP BY 1 IF fecha2 IS NULL THEN LET fecha2 = fecha_final END IF IF fecha3 IS NULL THEN LET fecha3 = fecha_final END IF ###### Balanceando la informacion ####### Calculando los dias de vencimiento del documento # IF (fecha_final - fecha3) >= dias2 THEN LET dias = (fecha_final - fecha3) - dias2 LET p_valor = x.valor IF p_valor <> 0 THEN LET Idx = idx + 1 display "idx ",idx #IF idx > 0 THEN IF tipo != "FT" THEN INITIALIZE fecha3 TO NULL END IF LET b_balance = b_balance + x.valor IF dias <= 0 THEN LET no_v = p_valor + no_v END IF IF dias > 0 and dias < 31 THEN LET v1_30 = p_valor + v1_30 END IF IF dias > 30 and dias < 46 THEN LET v31_45 = p_valor + v31_45 END IF IF dias > 45 and dias < 61 THEN LET v46_60 = p_valor + v46_60 END IF IF dias > 60 THEN LET vm_60 = vm_60 + p_valor END IF #display "dos aplica_a ",x.aplica_a PRINT COLUMN 3, x.aplica_a using "######", COLUMN 12, tipo, COLUMN 16, fecha2 using "dd/mm/yyyy", COLUMN 29, fecha3 using "dd/mm/yyyy", COLUMN 59, x.valor using "(((,(((,(((.&&)", COLUMN 97, b_balance using "(((,(((,(((.&&)" #END IF END IF AFTER GROUP OF x.sec_cliente IF no_v <> 0 OR v1_30 <> 0 OR v31_45 <> 0 OR v46_60 <> 0 OR vm_60 <> 0 THEN SKIP 1 LINE PRINT COLUMN 52," RESUMEN POR VENCIMIENTO " PRINT #COLUMN 1, "ANALISIS POR ANTIGUEDAD",letras.negrillas_on, COLUMN 32, "No Vencido", COLUMN 50, "1 a 30", COLUMN 60, "31 a 45", COLUMN 74, "46 a 60", COLUMN 86, "Mas de 60",letras.negrillas_off PRINT #COLUMN 1, "DE SU APRECIADA CUENTA: ", COLUMN 25, no_v using "((,(((,(((.&&)", COLUMN 41, v1_30 using "((,(((,(((.&&)", COLUMN 54, v31_45 using "((,(((,(((.&&)", COLUMN 70, v46_60 using "((,(((,(((.&&)", COLUMN 82, vm_60 using "((,(((,(((.&&)" SKIP 1 LINE IF v1_30 = 0 AND v31_45 = 0 AND v46_60 = 0 AND vm_60 = 0 THEN PRINT COLUMN 1, " NOTA : " PRINT COLUMN 1, " CON LA REMISION DE ESTE ESTADO DE CUENTAS SOLO ESTAMOS CONFIRMANDO EL " PRINT COLUMN 1, " BALANCE COMPUESTO POR LA(S) FACTURA(S) DETALLADA(S) EN EL MISMO." PRINT COLUMN 1, " SI EXISTE ALGUNA DIFERENCIA FAVOR COMUNICARSE CON NUESTRO GERENTE DE TESORERIA " PRINT COLUMN 1, " EL LIC. PEDRO ACOSTA AL TEL. 530-5409, O ENVIARNOS SU RESPUESTA, YA SEA POR " PRINT COLUMN 1, " LA VIA A NUESTRO FAX No. 530-7966, O POR VIA A NUESTRA DIRECCION ELECTRONICA" PRINT COLUMN 1, " pacosta@dom.rov.com " SKIP 1 LINE PRINT COLUMN 1, " SALUDOS CORDIALES. " END IF IF v1_30 != 0 OR v31_45 != 0 OR v46_60 != 0 OR vm_60 != 0 THEN PRINT COLUMN 1, "NOTA : " PRINT COLUMN 1, "FAVOR OBSERVAR QUE ESTE ESTADO DE CUENTAS PRESENTA UN BALANCE VENCIDO COMPUESTO " PRINT COLUMN 1, "POR LA(S) FACTURA(S) QUE LE ESTAMOS SENALANDO." PRINT COLUMN 1, "EN CASO DE QUE DESEE LE ENVIAMOS A NUESTRO REPRESENTANTE PARA LOS FINES DE " PRINT COLUMN 1, "RIGOR, FAVOR COMUNICARSE CON NUESTRO GERENTE DE TESORERIA EL LIC. PEDRO ACOSTA " PRINT COLUMN 1, "AL TELEFONO 530-5409, O ENVIARNOS SU RESPUESTA, YA SEA POR VIA A NUESTRO FAX " PRINT COLUMN 1, "EL No. 530-7966, O POR VIA A NUESTRA DIRECCION ELECTRONICA pacosta@dom.rov.com " SKIP 1 LINE PRINT COLUMN 1, "SALUDOS CORDIALES. " END IF SKIP 1 LINES PRINT COLUMN 51, " LIC. PEDRO ACOSTA " PRINT COLUMN 51, "GERENTE DE TESORERIA" LET b_balance = 0 SKIP TO TOP OF PAGE END IF PAGE TRAILER SKIP 1 LINE PRINT COLUMN 1, letras.negrillas_on, "PG-Pago FT-Factura Local FE-Factura Exterior ", "ND-Nota Debito NC-Nota Credito DE-Devolucion", letras.negrillas_off LET no_v = 0 LET v1_30 = 0 LET v31_45 = 0 LET v46_60 = 0 LET vm_60 = 0 END REPORT } FUNCTION e_ccrp18() DEFINE primera,imprime_ana,imprime_cliente CHAR(1), cliente CHAR(70), codigo_g,codigo_ant,codigo_act CHAR(6), ret CHAR(30), ejecuta,localiza CHAR(80), documento CHAR(9) --# CALL fgl_init4js() --# LET archivo = NULL --# LET filename = NULL --# LET filename = FGL_GETENV("USPROGRAM") --# LET archivo = "G:\\\\ESTADO.XLS" --# LET sysos = FGL_GETENV("OS") --# IF sysos = "Windows_NT" THEN --# LET filename = filename CLIPPED," G:\\\\ESTADO.XLS" --# LET localiza = "G:\\ESTADOS\\" --# LET ejecuta = "DEL /S /Q ",localiza CLIPPED,"*.*" RUN ejecuta LET ejecuta = NULL --# ELSE --# LET filename = "C:\\\\ARCHIV~1\\\\MICROS~1\\\\OFFICE\\\\EXCEL.EXE G:\\\\ESTADO.XLS" --# LET localiza = "G:\\ESTADOS\\" --# LET archivo = "G:\\\\ESTADO.XLS" --# LET ejecuta = "DEL ",localiza CLIPPED,"*.xls" RUN ejecuta LET ejecuta = NULL --# END IF # CREACION TABLA TEMPORAL CREATE TABLE estado ( tipo_cliente SMALLINT, sec_cliente SMALLINT, aplica_a INTEGER, fecha_venc DATE, valor DECIMAL(12,2) ) LET primera = "S" LET salir = "N" WHILE salir != "S" FETCH movtos_cli INTO movtos.* IF status = NOTFOUND THEN LET salir = "S" EXIT WHILE END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF IF prima IS NOT NULL THEN LET movtos.valor = movtos.valor * prima END IF SELECT MAX(a.fecha_orig) INTO fecha3 FROM cctb00001 a WHERE a.num_doc = movtos.aplica_a AND a.status_t IS NULL AND a.aplica_a = a.num_doc INSERT INTO estado VALUES (movtos.tipo_cliente,movtos.sec_cliente, movtos.aplica_a,fecha3,movtos.valor) END WHILE --# IF winexec(filename) THEN --# IF DDEconnect("EXCEL",archivo) THEN --# LET cels = "R",6 USING "<<","C3" --# IF DDEpoke("EXCEL",archivo,cels,fecha_final) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF DECLARE buscate CURSOR FOR SELECT a.tipo_cliente,a.sec_cliente,a.aplica_a,SUM(a.valor) FROM estado a GROUP BY 1,2,3 ORDER BY 1,2 LET primera = "S" LET cnt = 16 LET balance = 0 LET codigo_ant = "1" LET codigo_Act = NULL FOREACH buscate INTO movtos.* LET codigo_Act = movtos.tipo_cliente USING "##",movtos.sec_cliente USING "&&&&" LET imprime_ana = "N" IF primera = "S" THEN LET codigo_ant = codigo_Act END IF IF codigo_ant != codigo_act THEN LET codigo_ant = codigo_Act LET primera = "S" LET imprime_ana = "S" --# LET cels = "R",38 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,no_v) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C3" --# IF DDEpoke("EXCEL",archivo,cels,v1_30) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C4" --# IF DDEpoke("EXCEL",archivo,cels,v31_45) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C5" --# IF DDEpoke("EXCEL",archivo,cels,v46_60) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C7" --# IF DDEpoke("EXCEL",archivo,cels,vm_60) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET command = "Run(\\\"ESTADO.XLS!SALVAR\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret --# IF sysos = "Windows_NT" THEN LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\", codigo_g,".xls" --# ELSE LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\", codigo_g,".xls" --# END IF RUN ejecuta --# LET command = "Run(\\\"ESTADO.XLS!LIMPIAR\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret LET cnt = 16 --# END IF --# IF primera = "S" THEN LET primera = "N" LET imprime_cliente = "S" LET no_v = 0 LET v1_30 = 0 LET v31_45 = 0 LET v46_60 = 0 LET vm_60 = 0 #### Seleciona los datos generales de identificacion del cliente LET codigo_g = movtos.tipo_cliente USING "##",movtos.sec_cliente USING "&&&&" SELECT UNIQUE b.nombre,b.limite_credito,b.zona_postal,b.num_rnc,c.calle, c.casa_num,b.telefono,b.cod_zona,b.cod_provincia,c.barrio INTO p_nombre,p_limite_credito,p_zona,p_numero,p_calle,p_casa, ptelefono,pzona,pprovincia,pbarrio FROM vetb00004 b ,vetb00005 c WHERE b.tipo_cliente = movtos.tipo_cliente and b.sec_cliente = movtos.sec_cliente and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and b.status_t is null SELECT a.descrip INTO nombre_zona FROM vetb00008 a WHERE a.cod_zona = pzona SELECT b.nombre_provincia INTO nombre_p FROM vetb00009 a, vetb00020 b WHERE a.cod_zona = pzona AND a.cod_provincia = pprovincia AND b.cod_provincia = a.cod_provincia --# LET cliente = p_nombre CLIPPED," ","(",movtos.tipo_cliente USING "##","-", movtos.sec_cliente USING "&&&&",")" --# LET cliente = cliente CLIPPED --# LET cels = "R",8 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF LET balance = 0 --# LET cliente = null --# LET cliente = p_calle CLIPPED," #",p_casa CLIPPED,", ",pbarrio CLIPPED," Tel. ",ptelefono CLIPPED --# LET cels = "R",9 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cliente = null --# LET cliente = "LIMITE: ",p_limite_credito USING "##,###,###.##"," ", "RNC: ",p_numero --# LET cels = "R",10 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cliente = null --# LET cliente = nombre_zona CLIPPED,", ",nombre_p CLIPPED --# LET cels = "R",11 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# END IF SELECT UNIQUE a.tipo_doc,MIN(a.fecha_orig) INTO tipo,fecha2 FROM cctb00001 a WHERE a.num_doc = movtos.aplica_a AND a.status_t IS NULL AND a.aplica_a = a.num_doc GROUP BY 1 --# LET documento = movtos.aplica_a USING "<<<<<<","-",tipo --# LET cels = "R",cnt USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,documento) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",cnt USING "<<","C3" --# IF DDEpoke("EXCEL",archivo,cels,fecha2) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET balance = balance + movtos.valor --# LET cels = "R",cnt USING "<<","C5" --# IF DDEpoke("EXCEL",archivo,cels,movtos.valor) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET balance = balance + movtos.valor --# LET cels = "R",cnt USING "<<","C7" --# IF DDEpoke("EXCEL",archivo,cels,balance) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",35 USING "<<","C7" --# IF DDEpoke("EXCEL",archivo,cels,balance) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF #LET dias = (fecha_final - fecha2) - dias2 LET dias = (fecha_final - fecha3) - dias2 IF dias > 0 AND dias < 31 THEN LET v1_30 = movtos.valor + v1_30 END IF IF dias > 30 and dias < 46 THEN LET v31_45 = movtos.valor + v31_45 END IF IF dias > 45 and dias < 61 THEN LET v46_60 = movtos.valor + v46_60 END IF IF dias > 60 THEN LET vm_60 = vm_60 + movtos.valor END IF --# LET cnt = cnt + 1 --# END FOREACH IF imprime_ana = "N" THEN --# LET cels = "R",38 USING "<<","C2" --# IF DDEpoke("EXCEL",archivo,cels,no_v) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C3" --# IF DDEpoke("EXCEL",archivo,cels,v1_30) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C4" --# IF DDEpoke("EXCEL",archivo,cels,v31_45) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C5" --# IF DDEpoke("EXCEL",archivo,cels,v46_60) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF --# LET cels = "R",38 USING "<<","C7" --# IF DDEpoke("EXCEL",archivo,cels,vm_60) THEN --# ELSE --# LET numero_msg =391 --# CALL msg(numero_msg) --# END IF {--# LET command = "Run(\\\"ESTADO.XLS!PROTEJE\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret } --# LET command = "Run(\\\"ESTADO.XLS!SALVAR\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret {--# LET command = "Run(\\\"ESTADO.XLS!DESPROTEJER\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret } --# IF sysos = "Windows_NT" THEN LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\", codigo_g,".xls" --# ELSE LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\", codigo_g,".xls" --# END IF RUN ejecuta --# LET command = "Run(\\\"ESTADO.XLS!LIMPIAR\\\";FALSE)" --# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret END IF end if end if DROP TABLE estado --# END FUNCTION