GLOBALS "cgprgb000.4gl" DEFINE cuentas1 DYNAMIC ARRAY OF RECORD cuenta_no LIKE cgtb00001.cuenta_no, descripcion LIKE cgtb00001.descripcion, nivel LIKE cgtb00001.nivel END RECORD FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) , l SMALLINT SELECT * INTO p_compania.* FROM companias LET l = (80 - LENGTH(p_compania.nombre CLIPPED))/2 LET fecha = today USING "dd/mm/yy" LET hora = time DISPLAY p_compania.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Contabilidad General" AT 5,24 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) #CALL fgl_drawbox(1,79,22,1) END FUNCTION FUNCTION cvendedor() DEFINE k1vendedor SMALLINT, dvendedor CHAR(60), k2vendedor ui.ComboBox LET k2vendedor = ui.combobox.forname("formonly.kvendedor") DECLARE bvendedor CURSOR FOR SELECT DISTINCT b.num_emp,RTRIM(CAST(b.nom1_emp AS CHAR(30)))+" " + RTRIM(CAST(b.apell1_emp AS CHAR(30)))+"("+CAST(b.num_emp AS VARCHAR(6))+")" FROM vetb00028 a, adtb00003 b WHERE a.sec_vend = b.num_emp AND b.num_Emp = a.sec_Vend AND b.status_t IS NULL order by 2 CALL k2vendedor.clear() FOREACH bvendedor INTO k1vendedor,dvendedor CALL k2vendedor.additem(k1vendedor,dvendedor) END FOREACH END FUNCTION {REPORT cheque(x,z) DEFINE z RECORD cuenta_no LIKE cgtb00004.cuenta_no, departamento LIKE cgtb00004.departamento, cod_aux LIKE cgtb00004.cod_aux, cod_sec LIKE cgtb00004.cod_sec, num_doc LIKE cgtb00004.num_doc, nom_cuenta CHAR(30), debito LIKE cgtb00004.debito, credito LIKE cgtb00004.credito END RECORD DEFINE x RECORD tipo_doc LIKE cptb00001.tipo_doc, cuenta_p LIKE cgtb00004.cuenta_no, numero INTEGER, cod_sp LIKE cptb00001.cod_sp, cod_sp_sec LIKE cptb00001.cod_sp_sec, nom_sup CHAR(60), fecha LIKE cgtb00004.fecha, tasa LIKE cgtb00005.tasa, monto DECIMAL(12,2), codigo LIKE tetb00003.codigo END RECORD, ano CHAR(4) DEFINE nombre_mes CHAR(10) DEFINE orden,fact CHAR(30) DEFINE doble_on,negrillas_on,negrillas_off,italica,italica_of,doce_on,doble_of, doce_of CHAR(2) DEFINE in_mes INTEGER DEFINE comprime_on,comprime_of CHAR(1) DEFINE lineas CHAR(5) DEFINE valor_mask CHAR(13) OUTPUT TOP MARGIN 0 LEFT MARGIN 2 PAGE LENGTH 51 BOTTOM MARGIN 0 ORDER BY x.numero FORMAT BEFORE GROUP OF x.numero LET doble_on = ASCII 14 LET doble_of = ASCII 20 LET doce_on = ASCII 27, ASCII 77 LET doce_of = ASCII 27, ASCII 80 LET italica = ASCII 27, ASCII 52 LET italica_of = ASCII 27, ASCII 53 LET negrillas_on = ASCII 27, ASCII 69 LET negrillas_off = ASCII 27, ASCII 70 LET comprime_on = ASCII 15 LET comprime_of = ASCII 18 LET in_mes = month(recibo.fecha) CALL busca_mes() LET nombre_mes = meses[in_mes] SKIP 2 LINE PRINT COLUMN 1, doce_on,comprime_on, COLUMN 129, datos_ck.codigo_1,doce_of,comprime_of PRINT COLUMN 1, doce_on,comprime_on, COLUMN 125, "-------",doce_of,comprime_of, COLUMN 135, doble_on,x.numero using "&&&&&&",doce_on, comprime_on PRINT COLUMN 125, datos_ck.codigo_2,doce_of,comprime_of LET ano = year(recibo.fecha) PRINT COLUMN 43, negrillas_on,day(recibo.fecha) using "&&", COLUMN 55, nombre_mes clipped, COLUMN 74, ano SKIP 2 LINE PRINT COLUMN 18, recibo.nom_sup clipped, COLUMN 64, recibo.monto using "***,***,***.##" ESTO YA ESTABA COMENTADO * CALL convierte(recibo.monto) SKIP 1 LINE PRINT COLUMN 5, "*",valor_letras clipped,negrillas_off* LET valor_mask = recibo.monto using "<<,<<<,<<<.##" clipped SKIP 2 LINE ESTO TAMBIEN * PRINT COLUMN 3, negrillas_on,comprime_on, " Mmotech",doble_on,comprime_of,"RD$", valor_mask clipped, " Ctvos",negrillas_off* PRINT negrillas_on,doce_on #PRINT COLUMN 8 , datos_ck.nombre_bco,doce_of,negrillas_off,comprime_on #PRINT COLUMN 11, datos_ck.direccion #PRINT COLUMN 11, "Cuenta No. ",datos_ck.cuenta_bank PRINT comprime_of SKIP 4 LINES SKIP 6 LINES PRINT COLUMN 6, detalle_1," ",valor_1 using "(((,(((,((#.##)" PRINT COLUMN 6, detalle_2," ",valor_2 using "(((,(((,((#.##)" PRINT COLUMN 6, detalle_3," ",valor_3 using "(((,(((,((#.##)" PRINT COLUMN 6, detalle_4," ",valor_4 using "(((,(((,((#.##)" PRINT COLUMN 6, detalle_5," ",valor_5, COLUMN 77, recibo.monto using "#,###,###.##" SKIP 3 LINES PRINT comprime_on ON EVERY ROW PRINT COLUMN 6, z.cuenta_no, COLUMN 18, z.departamento using "####", COLUMN 27, z.cod_aux using "##","-",z.cod_sec using "####", COLUMN 37, z.num_doc , COLUMN 50, z.nom_cuenta, COLUMN 119, z.debito using "##,###,###.##", COLUMN 142, z.credito using "##,###,###.##" PAGE TRAILER PRINT COLUMN 10, x.codigo using "&&&&"," ",p_descrip PRINT COLUMN 1,comprime_of,doble_on, COLUMN 1, x.numero USING "&&&&&&" SKIP 7 LINES END REPORT} FUNCTION busca_mes() LET meses[1] = "ENERO" LET meses[2] = "FEBRERO" LET meses[3] = "MARZO" LET meses[4] = "ABRIL" LET meses[5] = "MAYO" LET meses[6] = "JUNIO" LET meses[7] = "JULIO" LET meses[8] = "AGOSTO" LET meses[9] = "SEPTIEMBRE" LET meses[10] = "OCTUBRE" LET meses[11] = "NOVIEMBRE" LET meses[12] = "DICIEMBRE" END FUNCTION FUNCTION cventas() DEFINE kventas SMALLINT, dventas CHAR(30) LET pventas = ui.combobox.forname("formonly.ventas") DECLARE bventas CURSOR FOR SELECT a.ventas,a.descripcion FROM vetb00061 a CALL pventas.clear() FOREACH bventas INTO kventas,dventas CALL pventas.additem(kventas,dventas) END FOREACH END FUNCTION FUNCTION solicitud() DEFINE kcodigo SMALLINT, kdescripcion CHAR(30), sol ui.ComboBox LET sol = ui.combobox.forname("formonly.tiposolicitud") DECLARE xsolicitud CURSOR FOR SELECT DISTINCT a.tipo,a.desc_tipo FROM cptb00008 a WHERE a.status_t IS NULL CALL sol.clear() FOREACH xsolicitud INTO kcodigo,kdescripcion CALL sol.additem(kcodigo,kdescripcion) END FOREACH END FUNCTION FUNCTION busca_cuenta() OPEN WINDOW cons_cuenta AT 10,5 WITH FORM "cgfmwd004" ATTRIBUTE (BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST) CONSTRUCT BY NAME criterio ON descripcion IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) RETURN END IF LET selec = "SELECT a.cuenta_no,a.descripcion,a.nivel FROM cgtb00001 a ", "WHERE ",criterio clipped," and a.nivel>=3 AND a.status_t is null ORDER BY 1" PREPARE comando FROM selec DECLARE busca2 CURSOR FOR comando OPEN busca2 LET idx = 1 WHILE STATUS != NOTFOUND FETCH busca2 INTO cuentas1[idx].* IF status = notfound THEN EXIT WHILE END IF LET idx = idx + 1 END WHILE IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) RETURN END IF CALL set_count (idx - 1) DISPLAY ARRAY cuentas1 TO s_cuentas.* LET curr1 = arr_curr() IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) RETURN END IF CLOSE WINDOW cons_cuenta RETURN cuentas1[curr1].cuenta_no,cuentas1[curr1].descripcion END FUNCTION