Controlar Archivo de Acreditación de Banco Nación

De Wiki
Revisión del 14:20 30 ene 2012 de Mwilson (Discusión | contribuciones) (Botón "Formato")

Saltar a: navegación, buscar

FORMULARIO

INFORME

CÓDIGO

Botón "Buscar Archivo"

CLOSE TABLES all

  • programas = vm_programas + "prg_ver_sicoss.prg"
  • do &programas WITH vm_mes,vm_anio

volver=fullpath(curdir())

arch=getfile("TXT","Abra suledos.txt","tomar",0,"Tomar Archivo de Banco Nación")

  • 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 + "temponacion" create table &tabla free (datos C(254))

APPEND FROM &arch type sdf

IF NOT USED("temponacion")

USE &tabla IN 0 

endif

  • --tabla de cabecera
  • 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+"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(8),largo_lin2 C(100),;

                         fecha_p C(6),empresa C(4),total N(15,2))


tabla=vm_bases_informes+"cuerpo_ob_n" CREATE TABLE &tabla free (casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;

                         tipo_doc C(2),nume_doc C(8),largo_lin N(3))
                         


v_cant_reg=RECCOUNT("temponacion")

  • --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 temponacion SCAN

   SCATTER memvar
 
   *casa c(4),cuenta C(10),movimiento C(3),fecha_pago C(6),identi_emp C(4),legajo C(9),importe c(13),nombre C(30),;
                         tipo_doc C(2),nume_doc C(8)
                         
   *son los de detallee
   v_casa=SUBSTR(m.datos,1,4)
   v_cuenta=SUBSTR(m.datos,5,10)
   v_movimiento=SUBSTR(m.datos,15,3)
   v_fecha_pago=SUBSTR(m.datos,18,6)
   v_identi_emp=SUBSTR(m.datos,24,4)
   v_legajo=SUBSTR(m.datos,28,9)
   v_importe=SUBSTR(m.datos,37,13)
   v_nombre=SUBSTR(m.datos,50,30)    
   v_tipo_doc=SUBSTR(m.datos,80,2)
   v_nume_doc=SUBSTR(m.datos,82,8)
   v_largo_linea=LEN(ALLTRIM(m.datos))
     
   SELECT cuerpo_ob_n
   APPEND blank
   replace  casa       WITH v_casa,;  
            cuenta     WITH v_cuenta,;  
            movimiento WITH v_movimiento,;
            fecha_pago WITH v_fecha_pago,;
            identi_emp WITH v_identi_emp,;
            legajo     WITH v_legajo,;
            importe    with v_importe,;
            nombre     WITH v_nombre,;
            tipo_doc   with v_tipo_doc,;
            nume_doc   with v_nume_doc,;
            largo_lin  with v_largo_linea

endscan

SELECT SUM(VAL(importe))/100 as tot FROM cuerpo_ob_n INTO CURSOR total

v_total=total.tot

  • MESSAGEBOX(V_TOTAL)
  • --veo las cantidades de lineas en los reg 2

SELECT largo_lin,COUNT(*) as canti; from cuerpo_ob_n; 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 datos_arch replace largo_lin2 WITH v_largo,;

       total      WITH v_total,;
       empresa    WITH v_identi_emp,;
       fecha_p    WITH v_fecha_pago
       
  • --fin cartel de espera

frmprocesando.release

informes = vm_informes + "frx_contr_banco2.frx" report format &informes preview

Botón "Ver Detalle"

SELECT cuerpo_ob_n BROWSE nomod

Botón "Formato"

DECLARE INTEGER ShellExecute ;

IN SHELL32.DLL ;

INTEGER nWinHandle,;

STRING cOperation,;

STRING cFileName,;

STRING cParameters,;

STRING cDirectory,;

INTEGER nShowWindow

V_busca = 'R:\werken\docs\Formato_Banco_Nacion.pdf' ShellExecute(0, "open",v_busca,"", Fullpath(""),0)

Botón "Salir"

thisform.release