Files
MBS/PROYECTO/cgdir/cgfunciones.4gl
T

273 lines
7.8 KiB
Plaintext

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