Controlar Archivo de Acreditación de Otros Bancos

De Wiki
Revisión del 12:23 31 ene 2012 de Mwilson (Discusión | contribuciones) (Botón "Cancelar" (btnCancelar))

Saltar a: navegación, buscar

FORMULARIO

Frm contr banco1.PNG

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

Botón "Ayuda"(btnAyuda)

Combo "Año" (cmbAnio)

Combo "Mes" (cmbMes)

MANUAL DEL USUARIO

Procedimiento de Uso