Diferencia entre revisiones de «Controlar Archivo de Acreditación de Otros Bancos»
De Wiki
(→Botón "Formato" (btnProcesar)) |
(→Botón "Cancelar" (btnCancelar)) |
||
Línea 27: | Línea 27: | ||
ShellExecute(0, "open",v_busca,"", Fullpath(""),0) | ShellExecute(0, "open",v_busca,"", Fullpath(""),0) | ||
− | ===Botón " | + | ===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 "Ayuda"(btnAyuda)=== | ===Botón "Ayuda"(btnAyuda)=== |
Revisión del 12:23 31 ene 2012
Contenido
FORMULARIO
INFORME
CÓDIGO
Programa "prg_fec_permanencia.prg"
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