Controlar Archivo de Acreditación de Otros Bancos
De Wiki
Revisión del 13:32 14 feb 2012 de Mwilson (Discusión | contribuciones)
Contenido
FORMULARIO
frm_contr_banco1.scx
INFORME
frx_contr_banco1.frx
CÓDIGO
Botón "Formato" (cmdformato)
DECLARE INTEGER ShellExecute ;
IN SHELL32.DLL ;
INTEGER nWinHandle,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow
V_busca = 'R:\werken\docs\Formato_Otros_Bancos.pdf'
ShellExecute(0, "open",v_busca,"", Fullpath(""),0)
Botón "Buscar Archivo" (cmdaceptar)
CLOSE TABLES all
* programas = vm_programas + "prg_ver_sicoss.prg"
* do &programas WITH vm_mes,vm_anio
volver=fullpath(curdir())
arch=getfile("TXT","Abra TFPAGOS.txt","tomar",0,"Tomar Archivo de Otros Bancos")
*info del archivo
vec = ADIR(vector_file, arch)
v_arch_nombre= vector_file(1)
v_arch_tamanio= vector_file(2)
v_arch_fecha= vector_file(3)
v_arch_hora= vector_file(4)
set defa to &volver
*--cartel de espera
formulario = vm_formularios + "frmprocesando.scx"
do form &formulario
*--
*--tabla para asignar el arch
tabla=vm_bases_informes + "tempoban"
create table &tabla free (datos C(254))
APPEND FROM &arch type sdf
IF NOT USED("tempoban")
USE &tabla IN 0
endif
*--tabla de cabecera
tabla=vm_bases_informes+"datos_arch"
CREATE TABLE &tabla free (nombre c(100),tamanio C(50),fecha C(50),hora C(50),respons C(150),proceso C(150),registros N(3))
tabla=vm_bases_informes+"cabecera_ob"
CREATE TABLE &tabla free (tipo c(1),iden_empre C(11),casa_cuent C(4),cuen_tipo C(1),cuen_moned C(1),cuen_nro c(11),cuen_dv C(1),;
mone_trans C(1),fecha C(8),empresa C(20),tipo_trans C(3),largo_lin N(3))
tabla=vm_bases_informes+"cuerpo_ob"
CREATE TABLE &tabla free (tipo c(1),enti_acred C(4),sucu_acred C(4),bloq1_dv C(1),cuen_acred C(14),importe c(10),refe_univ C(12),;
cliente C(22),clase_doc C(1),tipo_doc C(2),nume_doc C(11),largo_lin N(3))
tabla=vm_bases_informes+"pie_ob"
CREATE TABLE &tabla free (tipo c(1),impo_total C(15),cant_regis C(7),largo_lin N(3),largo_lin2 C(100))
v_cant_reg=RECCOUNT("tempoban")
*--cargo la info del arch
SELECT datos_arch
APPEND BLANK
replace nombre WITH v_arch_nombre,;
tamanio WITH ALLTRIM(STR(v_arch_tamanio)),;
fecha WITH PADL(ALLTRIM(STR(day(v_arch_fecha))),2,"0")+"-"+PADL(ALLTRIM(STR(month(v_arch_fecha))),2,"0")+"-
"+ALLTRIM(STR(YEAR(v_arch_fecha))),;
hora WITH v_arch_hora,;
respons with thisform.txtresponsable.Text,;
proceso with thisform.txtproceso.Text,;
registros WITH v_cant_reg
*---escaneo y guardo el informe
SELECT tempoban
SCAN
SCATTER memvar
IF RECNO("tempoban")=1
*es el rpimer registro
v_tipo=SUBSTR(m.datos,1,1)
v_identi_empre=SUBSTR(m.datos,2,11)
v_casa_cuenta=SUBSTR(m.datos,13,4)
v_cuenta_tipo=SUBSTR(m.datos,17,1)
v_cuenta_moneda=SUBSTR(m.datos,18,1)
v_cuenta_nro=SUBSTR(m.datos,19,11)
v_cuenta_dig_verif=SUBSTR(m.datos,30,1)
v_moneda_transaccion=SUBSTR(m.datos,31,1)
v_fecha=SUBSTR(m.datos,32,8)
v_empresa=SUBSTR(m.datos,40,20)
v_tipo_transfe=SUBSTR(m.datos,60,3)
v_largo_linea=LEN(ALLTRIM(m.datos))
SELECT cabecera_ob
APPEND blank
replace tipo WITH v_tipo,;
iden_empre WITH v_identi_empre,;
casa_cuent WITH v_casa_cuenta,;
cuen_tipo WITH v_cuenta_tipo,;
cuen_moned WITH v_cuenta_moneda,;
cuen_nro WITH v_cuenta_nro,;
cuen_dv WITH v_cuenta_dig_verif,;
mone_trans WITH v_moneda_transaccion,;
fecha WITH v_fecha,;
empresa WITH v_empresa,;
tipo_trans WITH v_tipo_transfe,;
largo_lin with v_largo_linea
endif
IF RECNO("tempoban")>1 AND RECCOUNT("tempoban")<>RECNO("tempoban")
*son los de detallee
v_tipo=SUBSTR(m.datos,1,1)
v_enti_acred=SUBSTR(m.datos,2,4)
v_sucu_acred=SUBSTR(m.datos,6,4)
v_bloq1_dv=SUBSTR(m.datos,10,1)
v_cuen_acred=SUBSTR(m.datos,11,14)
v_importe=SUBSTR(m.datos,25,10)
v_refe_univ=SUBSTR(m.datos,35,15)
v_cliente=SUBSTR(m.datos,50,22)
v_clase_doc=SUBSTR(m.datos,72,1)
v_tipo_doc=SUBSTR(m.datos,73,2)
v_nume_doc=SUBSTR(m.datos,75,11)
v_largo_linea=LEN(ALLTRIM(m.datos))
SELECT cuerpo_ob
APPEND blank
replace tipo WITH v_tipo,;
enti_acred WITH v_enti_acred,;
sucu_acred WITH v_sucu_acred,;
bloq1_dv WITH v_bloq1_dv,;
cuen_acred WITH v_cuen_acred,;
importe WITH v_importe,;
refe_univ WITH v_refe_univ,;
cliente WITH v_cliente,;
clase_doc WITH v_clase_doc,;
tipo_doc WITH v_tipo_doc,;
nume_doc WITH v_nume_doc,;
largo_lin with v_largo_linea
endif
IF RECCOUNT("tempoban")=RECNO("tempoban")
v_tipo=SUBSTR(m.datos,1,1)
v_impo_total=SUBSTR(m.datos,2,15)
v_cant_regis=SUBSTR(m.datos,17,7)
v_largo_linea=LEN(ALLTRIM(m.datos))
SELECT pie_ob
APPEND blank
replace tipo WITH v_tipo,;
impo_total WITH v_impo_total,;
cant_regis WITH v_cant_regis,;
largo_lin WITH v_largo_linea
endif
endscan
*--veo las cantidades de lineas en los reg 2
SELECT largo_lin,COUNT(*) as canti;
from cuerpo_ob;
GROUP BY largo_lin;
ORDER BY canti desc;
INTO CURSOR mirar
v_largo=""
SELECT mirar
SCAN
SCATTER memvar
v_largo=v_largo+ALLTRIM(STR(m.canti))+" lineas de "+ALLTRIM(STR(m.largo_lin))+"; "
endscan
SELECT pie_ob
replace largo_lin2 WITH v_largo
*--fin cartel de espera
frmprocesando.release
informes = vm_informes + "frx_contr_banco1.frx"
report format &informes preview
Botón "Ver Cabecera"(cmdcabecera)
SELECT cabecera_ob BROWSE nomod
Botón "Ver detalle" (cmddetalle)
SELECT cuerpo_ob BROWSE nomod
Botón "Ver pie" (cmdpie)
SELECT pie_ob BROWSE nomod
Botón "Salir" (cmdsalir)
thisform.release
MANUAL DEL USUARIO
NO SE ENCUENTRA DISPONIBLE